changeset 400:68cc614b191b Faradi-7.0.x

Do not support relative subrepos yet
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 02 Mar 2012 14:29:18 +0400
parents 45f25ca68312
children 998c38590166 68403caae808
files mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java
diffstat 1 files changed, 22 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java	Fri Mar 02 14:24:58 2012 +0400
+++ b/mercurial-agent/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialIncludeRuleUpdater.java	Fri Mar 02 14:29:18 2012 +0400
@@ -145,35 +145,35 @@
         myLogger.message("The url of subrepo was changed between revisions " + workingDirRevision + " and " + toVersion + " , delete the subrepo");
         delete(subrepo.dir());
       }
-      String subrepoUrl = subrepo.url();
-      if (subrepo.isRelative()) {
-        subrepoUrl = parentRepositoryUrl.endsWith("/") ? parentRepositoryUrl + subrepo.url() : parentRepositoryUrl + "/" + subrepo.url();
-      }
       HgRepo subrepository = new HgRepo(subrepo.dir(), myHgPath, myAuthSettings);
       if (myUseLocalMirrors && subrepo.vcsType() == SubRepo.VcsType.hg) {
-        if (!subrepository.isValidRepository() || !subrepository.containsRevision(subrepo.revision())) {
-          updateLocalMirror(subrepoUrl, subrepo.revision());
-          File mirrorDir = myMirrorManager.getMirrorDir(subrepoUrl);
-          if (subrepository.isValidRepository()) {
-            myLogger.message("Pull from local mirror");
-            subrepository.pull().fromRepository(mirrorDir)
-                    .withTimeout(myPullTimeout)
-                    .call();
-            myLogger.message("done");
-          } else {
-            myLogger.message("Clone subrepo from local mirror");
-            subrepository.doClone().fromRepository(mirrorDir)
-                    .setUpdateWorkingDir(false)
-                    .setUsePullProtocol(false)
-                    .call();
-            subrepository.setDefaultPath(subrepo.url());
-            myLogger.message("done");
+        if (subrepo.isRelative()) {
+          myLogger.message("Subrepo url " + subrepo.url() + " is relative, subrepo will be updated during parent repository update");
+        } else {
+          if (!subrepository.isValidRepository() || !subrepository.containsRevision(subrepo.revision())) {
+            updateLocalMirror(subrepo.url(), subrepo.revision());
+            File mirrorDir = myMirrorManager.getMirrorDir(subrepo.url());
+            if (subrepository.isValidRepository()) {
+              myLogger.message("Pull from local mirror");
+              subrepository.pull().fromRepository(mirrorDir)
+                      .withTimeout(myPullTimeout)
+                      .call();
+              myLogger.message("done");
+            } else {
+              myLogger.message("Clone subrepo from local mirror");
+              subrepository.doClone().fromRepository(mirrorDir)
+                      .setUpdateWorkingDir(false)
+                      .setUsePullProtocol(false)
+                      .call();
+              subrepository.setDefaultPath(subrepo.url());
+              myLogger.message("done");
+            }
           }
         }
       } else {
         myLogger.message("Local mirrors aren't used, subrepo will be updated during the parent repo update");
       }
-      updateSubrepositories(subrepository, subrepo.revision(), subrepoUrl);
+      updateSubrepositories(subrepository, subrepo.revision(), subrepo.url());
     }
   }