changeset 859:b1b878449326

TW-37410 ability to get current state without default branch
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Wed, 13 Aug 2014 11:09:17 +0200
parents 61a373476058
children 206021e7175e
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Constants.java mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/HgVcsRoot.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java
diffstat 3 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Constants.java	Wed Jul 16 16:18:21 2014 +0200
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/Constants.java	Wed Aug 13 11:09:17 2014 +0200
@@ -36,4 +36,5 @@
   String HG_COMMANDLINE_VIA_FILE = "hg.pass.commandline.via.file";
   String PURGE_POLICY = "purgePolicy";
   String GLOBAL_DETECT_SUBREPO_CHANGES = "teamcity.hg.detectSubrepoChanges";
+  String IGNORE_MISSING_DEFAULT_BRANCH = "IGNORE_MISSING_DEFAULT_BRANCH";
 }
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/HgVcsRoot.java	Wed Jul 16 16:18:21 2014 +0200
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/HgVcsRoot.java	Wed Aug 13 11:09:17 2014 +0200
@@ -47,6 +47,7 @@
   private final boolean myIncludeSubreposInPatch;
   private final boolean myUseArchiveForPatch;
   private final PurgePolicy myPurgePolicy;
+  private final boolean myIgnoreMissingDefaultBranch;
 
   public HgVcsRoot(@NotNull final VcsRoot vcsRoot) {
     this(vcsRoot.getProperties());
@@ -63,10 +64,10 @@
     myAuthSettings = new AuthSettings(getProperty(Constants.USERNAME), getProperty(Constants.PASSWORD));
     myDetectSubrepoChanges = Boolean.parseBoolean(getProperty(Constants.DETECT_SUBREPO_CHANGES));
     myUseTagsAsBranches = Boolean.parseBoolean(getProperty(Constants.USE_TAGS_AS_BRANCHES));
-    String includeSubreposProp = getProperty(Constants.INCLUDE_SUBREPOS_IN_PATCH);
-    myIncludeSubreposInPatch = includeSubreposProp == null ? true : Boolean.parseBoolean(includeSubreposProp);//true by default
+    myIncludeSubreposInPatch = Boolean.parseBoolean(getProperty(Constants.INCLUDE_SUBREPOS_IN_PATCH, "true"));
     myUseArchiveForPatch = Boolean.parseBoolean(getProperty(Constants.USE_ARCHIVE_FOR_PATCH));
     myPurgePolicy = readPurgePolicy(vcsRootProperties);
+    myIgnoreMissingDefaultBranch = Boolean.valueOf(getProperty(Constants.IGNORE_MISSING_DEFAULT_BRANCH, "false"));
   }
 
   @NotNull
@@ -184,6 +185,14 @@
   }
 
   @NotNull
+  public String getProperty(@NotNull String propertyName, @NotNull String defaultValue) {
+    String value = myVcsRootProperties.get(propertyName);
+    if (value != null)
+      return value;
+    return defaultValue;
+  }
+
+  @NotNull
   public PurgePolicy getPurgePolicy() {
     return myPurgePolicy;
   }
@@ -193,6 +202,9 @@
     return myVcsRootProperties;
   }
 
+  public boolean isIgnoreMissingDefaultBranch() {
+    return myIgnoreMissingDefaultBranch;
+  }
 
   public static enum PurgePolicy {
     DONT_RUN,
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java	Wed Jul 16 16:18:21 2014 +0200
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialCollectChangesPolicy.java	Wed Aug 13 11:09:17 2014 +0200
@@ -68,7 +68,7 @@
     };
     Map<String, String> revisions = myVcs.syncRepository(hgRoot, new SyncSettings<Map<String, String>>(cmd));
     String defaultBranchName = hgRoot.getBranchName();
-    if (revisions.get(defaultBranchName) == null) {
+    if (revisions.get(defaultBranchName) == null && !hgRoot.isIgnoreMissingDefaultBranch()) {
       throw new VcsException("Cannot find revision of the default branch '" +
               defaultBranchName + "' of vcs root " + myVcs.describeVcsRoot(root));
     }