changeset 461:b21f3b3a33b1

Throw exception when current state does not contain revision of the default branch
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Tue, 10 Jul 2012 21:45:32 +0400
parents 8eb05f24d883
children 0d9919bd9685
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Fri Jul 06 21:26:25 2012 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Tue Jul 10 21:45:32 2012 +0400
@@ -23,6 +23,7 @@
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.exception.UnrelatedRepositoryException;
 import jetbrains.buildServer.log.Loggers;
 import jetbrains.buildServer.serverSide.*;
+import jetbrains.buildServer.serverSide.impl.LogUtil;
 import jetbrains.buildServer.util.EventDispatcher;
 import jetbrains.buildServer.util.FileUtil;
 import jetbrains.buildServer.util.cache.ResetCacheRegister;
@@ -453,7 +454,15 @@
   @NotNull
   public RepositoryState getCurrentState(@NotNull VcsRoot root) throws VcsException {
     HgVcsRoot hgRoot = myHgVcsRootFactory.createHgRoot(root);
-    return RepositoryStateFactory.createRepositoryState(getBranchesRevisions(hgRoot), hgRoot.getBranchName());
+    Map<String, String> branchRevisions = getBranchesRevisions(hgRoot);
+    String defaultBranchName = hgRoot.getBranchName();
+    if (branchRevisions.get(defaultBranchName) == null) {
+      VcsException e = new VcsException("Cannot find revision of the default branch '" +
+              defaultBranchName + "' of vcs root " + LogUtil.describe(root));
+      e.setRoot(root);
+      throw e;
+    }
+    return RepositoryStateFactory.createRepositoryState(branchRevisions, defaultBranchName);
   }
 
   @NotNull