From: Pavel Sher Date: Mon, 21 Jan 2019 15:45:03 +0000 (+0100) Subject: fix "Could not update local clone for ... command line ... is prohibited on this... X-Git-Url: https://git.jetbrains.org/?p=teamcity%2Fgit-plugin.git;a=commitdiff_plain;h=b9c966eb0b6fb53fe344733e1ef1f876e25151b6 fix "Could not update local clone for ... command line ... is prohibited on this node": wrap operation to make sure we are always able to update local clones on secondary node --- diff --git a/git-server-tc/src/jetbrains/buildServer/buildTriggers/vcs/git/GitClonesUpdater.java b/git-server-tc/src/jetbrains/buildServer/buildTriggers/vcs/git/GitClonesUpdater.java index 452a6665..4435f598 100644 --- a/git-server-tc/src/jetbrains/buildServer/buildTriggers/vcs/git/GitClonesUpdater.java +++ b/git-server-tc/src/jetbrains/buildServer/buildTriggers/vcs/git/GitClonesUpdater.java @@ -17,10 +17,7 @@ package jetbrains.buildServer.buildTriggers.vcs.git; import jetbrains.buildServer.log.Loggers; -import jetbrains.buildServer.serverSide.BuildServerAdapter; -import jetbrains.buildServer.serverSide.BuildServerListener; -import jetbrains.buildServer.serverSide.ServerResponsibility; -import jetbrains.buildServer.serverSide.TeamCityProperties; +import jetbrains.buildServer.serverSide.*; import jetbrains.buildServer.util.EventDispatcher; import jetbrains.buildServer.util.ThreadUtil; import jetbrains.buildServer.util.executors.ExecutorsFactory; @@ -87,14 +84,16 @@ public class GitClonesUpdater { OperationContext context = myVcs.createContext(root, "updating local clone"); try { - GitVcsRoot gitRoot = context.getGitRoot(); - myRepositoryManager.runWithDisabledRemove(gitRoot.getRepositoryDir(), () -> { - Repository repo = context.getRepository(); - try { - myVcs.getCollectChangesPolicy().ensureRepositoryStateLoadedFor(context, repo, true, state); - } catch (Exception e1) { - throw new VcsException(e1); - } + ReadOnlyRestrictor.doReadOnlyCommandLine(() -> { + GitVcsRoot gitRoot = context.getGitRoot(); + myRepositoryManager.runWithDisabledRemove(gitRoot.getRepositoryDir(), () -> { + Repository repo = context.getRepository(); + try { + myVcs.getCollectChangesPolicy().ensureRepositoryStateLoadedFor(context, repo, true, state); + } catch (Exception e1) { + throw new VcsException(e1); + } + }); }); } catch (VcsException e1) { Loggers.VCS.warnAndDebugDetails("Could not update local clone for: " + LogUtil.describe(root), e1);