Mercurial > hg > mercurial
view mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/OperationContext.java @ 976:7bf4d943d5bb
Update copyright
author | pavel.sher |
---|---|
date | Mon, 22 Jan 2018 11:39:20 +0100 |
parents | 39ff04730ccc |
children | 10dc26b32c35 |
line wrap: on
line source
/* * Copyright 2000-2018 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package jetbrains.buildServer.buildTriggers.vcs.mercurial; import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.HgVcsRoot; import jetbrains.buildServer.vcs.VcsException; import org.jetbrains.annotations.NotNull; import java.io.File; import java.util.HashMap; import java.util.Map; public class OperationContext { protected final MercurialVcsSupport myVcs; protected final RepoFactory myRepoFactory; protected final MercurialProgress myProgress; private final Map<String, HgVersion> myHgVersions = new HashMap<String, HgVersion>(); public OperationContext(@NotNull MercurialVcsSupport vcs, @NotNull RepoFactory repoFactory, @NotNull MercurialProgress progress) { myVcs = vcs; myRepoFactory = repoFactory; myProgress = progress; } @NotNull public HgVersion getHgVersion(@NotNull ServerHgRepo repo) throws VcsException { String hgPath = repo.getHgPath(); HgVersion cachedVersion = myHgVersions.get(hgPath); if (cachedVersion != null) return cachedVersion; HgVersion version = repo.version().call(); myHgVersions.put(hgPath, version); return version; } @NotNull public ServerHgRepo createRepo(@NotNull HgVcsRoot root, @NotNull File workingDir) throws VcsException { return myRepoFactory.createRepo(root, workingDir, myProgress); } public void syncRepository(@NotNull HgVcsRoot root) throws VcsException { syncRepository(root, VcsCallable.NO_OP); } public <T> T syncRepository(@NotNull HgVcsRoot root, @NotNull VcsCallable<T> cmd) throws VcsException { SyncSettings<T> settings = new SyncSettings<T>(cmd); return myVcs.syncRepository(root, settings, this); } @NotNull public ServerHgRepo createRepo(@NotNull HgVcsRoot root) throws VcsException { return myRepoFactory.createRepo(root, myVcs.getWorkingDir(root), myProgress); } }