Mercurial > hg > mercurial
changeset 354:5b3280c0fb2f
TW-19781 do clone instead of pull
author | Dmitry Neverov <dmitry.neverov@jetbrains.com> |
---|---|
date | Mon, 23 Jan 2012 13:21:27 +0400 |
parents | 15c86ab0046c |
children | 69d66e4f60e3 |
files | mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java |
diffstat | 1 files changed, 19 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java Wed Jan 18 14:03:35 2012 +0400 +++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java Mon Jan 23 13:21:27 2012 +0400 @@ -20,6 +20,7 @@ import static com.intellij.openapi.util.io.FileUtil.delete; import static jetbrains.buildServer.buildTriggers.vcs.mercurial.command.CommandUtil.removePrivateData; +import static jetbrains.buildServer.util.FileUtil.isEmptyDir; /** * @author dmitry.neverov @@ -92,15 +93,26 @@ private void updateRepository(File workingDir) throws VcsException, IOException { - if (!Settings.isValidRepository(workingDir)) { - initRepository(mySettings, workingDir, myUseLocalMirrors); + String defaultPullUrl = getDefaultPullUrl(mySettings, myUseLocalMirrors); + if (isEmptyDir(workingDir)) { + workingDir.mkdirs(); + myLogger.message("Start cloning from " + removePrivateData(defaultPullUrl, Collections.singleton(mySettings.getPassword()))); + CloneCommand clone = new CloneCommand(mySettings, workingDir); + clone.setRepository(defaultPullUrl); + clone.setUsePullProtocol(false); + clone.setUpdateWorkingDir(false); + clone.execute(); + myLogger.message("Repository successfully cloned"); } else { - ensureUseRightRepository(workingDir); + if (!Settings.isValidRepository(workingDir)) { + initRepository(mySettings, workingDir, myUseLocalMirrors); + } else { + ensureUseRightRepository(workingDir); + } + myLogger.message("Start pulling changes from " + removePrivateData(defaultPullUrl, Collections.singleton(mySettings.getPassword()))); + new PullCommand(mySettings, workingDir, defaultPullUrl).execute(myPullTimeout); + myLogger.message("Changes successfully pulled"); } - String defaultPullUrl = getDefaultPullUrl(mySettings, myUseLocalMirrors); - myLogger.message("Start pulling changes from " + removePrivateData(defaultPullUrl, Collections.singleton(mySettings.getPassword()))); - new PullCommand(mySettings, workingDir, defaultPullUrl).execute(myPullTimeout); - myLogger.message("Changes successfully pulled"); }