changeset 445:b47cfe5cbaba

Do not include revnum in revision
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Fri, 22 Jun 2012 12:41:23 +0400
parents a05eca69fc01
children 8a1231dc6a2c
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentSideCheckoutTest.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/DagFeaturesTest.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RevisionFormatTest.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/UnrelatedResitoriesTest.java
diffstat 6 files changed, 59 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Wed Jun 20 22:54:13 2012 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Fri Jun 22 12:41:23 2012 +0400
@@ -219,10 +219,10 @@
     syncRepository(hgRoot);
     HgRepo repo = createRepo(hgRoot);
     Map<String, ChangeSet> result = repo.branches().call();
-    if (!result.containsKey(hgRoot.getBranchName())) {
+    ChangeSet cset = result.get(hgRoot.getBranchName());
+    if (cset == null)
       throw new VcsException("Unable to find current version for the branch: " + hgRoot.getBranchName());
-    }
-    return result.get(hgRoot.getBranchName()).getFullVersion();
+    return cset.getId();
   }
 
   public boolean sourcesUpdatePossibleIfChangesNotFound(@NotNull final VcsRoot root) {
@@ -567,10 +567,10 @@
     List<ChangeSetRevision> parents = cset.getParents();
     if (parents.isEmpty())
       throw new IllegalStateException("Commit " + cset.getId() + " has no parents");
-    List<VcsChange> files = toVcsChanges(cset.getModifiedFiles(), parents.get(0).getFullVersion(), cset.getFullVersion(), checkoutRules);
-    final ModificationData result = new ModificationData(cset.getTimestamp(), files, cset.getDescription(), cset.getUser(), root, cset.getFullVersion(), cset.getId());
+    List<VcsChange> files = toVcsChanges(cset.getModifiedFiles(), parents.get(0).getId(), cset.getId(), checkoutRules);
+    final ModificationData result = new ModificationData(cset.getTimestamp(), files, cset.getDescription(), cset.getUser(), root, cset.getId(), cset.getId());
     for (ChangeSetRevision parent : parents) {
-      result.addParentRevision(parent.getFullVersion());
+      result.addParentRevision(parent.getId());
     }
     setCanBeIgnored(result);
     return result;
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentSideCheckoutTest.java	Wed Jun 20 22:54:13 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/AgentSideCheckoutTest.java	Fri Jun 22 12:41:23 2012 +0400
@@ -87,7 +87,7 @@
     VcsRootImpl root = new VcsRootBuilder()
             .withUrl(copyRepository(myTempFiles, simpleRepo()).getAbsolutePath())
             .withHgPath(HG_PATH_REFERENCE).build();
-    testUpdate(root, "4:b06a290a363b", "cleanPatch1/after", new IncludeRule(".", ".", null));
+    testUpdate(root, "b06a290a363b", "cleanPatch1/after", new IncludeRule(".", ".", null));
   }
 
 
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/DagFeaturesTest.java	Wed Jun 20 22:54:13 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/DagFeaturesTest.java	Fri Jun 22 12:41:23 2012 +0400
@@ -2,13 +2,11 @@
 
 import com.intellij.openapi.diagnostic.Logger;
 import jetbrains.buildServer.TempFiles;
-import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.ChangeSetRevision;
 import jetbrains.buildServer.log.Log4jFactory;
 import jetbrains.buildServer.util.TestFor;
 import jetbrains.buildServer.vcs.CheckoutRules;
 import jetbrains.buildServer.vcs.ModificationData;
 import jetbrains.buildServer.vcs.impl.VcsRootImpl;
-import org.jetbrains.annotations.NotNull;
 import org.jmock.Mockery;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -19,7 +17,6 @@
 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository;
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertFalse;
-import static org.testng.AssertJUnit.assertTrue;
 
 /**
  * @author dmitry.neverov
@@ -61,33 +58,20 @@
     assertEquals(4, changes.size());
     for (ModificationData change : changes) {
       assertFalse(change.getParentRevisions().isEmpty());
-      checkVersionsHaveNumbers(change.getParentRevisions());
     }
 
     changes = myHg.collectChanges(root, "12:1e620196c4b6", "18:df04faa7575a", CheckoutRules.DEFAULT);
     assertEquals(6, changes.size());
     for (ModificationData change : changes) {
       assertFalse(change.getParentRevisions().isEmpty());
-      checkVersionsHaveNumbers(change.getParentRevisions());
     }
   }
 
 
-  //TW-17882
+  @TestFor(issues = "TW-17882")
   public void should_report_changes_only_from_merged_named_branches() throws Exception {
     VcsRootImpl root = new VcsRootBuilder().withUrl(myRepository).build();
     List<ModificationData> changes = myHg.collectChanges(root, "1e620196c4b6", "505c5b9d01e6", CheckoutRules.DEFAULT);
     assertEquals(2, changes.size());
-    for (ModificationData change : changes) {
-      checkVersionsHaveNumbers(change.getParentRevisions());
-    }
-  }
-
-
-  private void checkVersionsHaveNumbers(@NotNull List<String> versions) {
-    for (String version : versions) {
-      ChangeSetRevision rev = new ChangeSetRevision(version);
-      assertTrue(rev.getRevNumber() != -1);
-    }
   }
 }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java	Wed Jun 20 22:54:13 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java	Fri Jun 22 12:41:23 2012 +0400
@@ -19,7 +19,6 @@
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.*;
 import jetbrains.buildServer.vcs.*;
 import jetbrains.buildServer.vcs.impl.VcsRootImpl;
-import jetbrains.buildServer.vcs.patches.PatchBuilderImpl;
 import junit.framework.Assert;
 import org.jetbrains.annotations.NotNull;
 import org.jmock.Mockery;
@@ -61,12 +60,12 @@
   public void test_get_current_version() throws Exception {
     VcsRootImpl vcsRoot = createVcsRoot(simpleRepo());
 
-    assertEquals(myVcs.getCurrentVersion(vcsRoot), "10:9c6a6b4aede0");
+    assertEquals(myVcs.getCurrentVersion(vcsRoot), "9c6a6b4aede0");
     assertEquals("9c6a6b4aede0", myVcs.getVersionDisplayName("10:9c6a6b4aede0", vcsRoot));
 
-    assertEquals(myVcs.getCurrentVersion(createVcsRoot(simpleRepo(), "test_branch")), "8:04c3ae4c6312");
+    assertEquals(myVcs.getCurrentVersion(createVcsRoot(simpleRepo(), "test_branch")), "04c3ae4c6312");
 
-    assertEquals(myVcs.getCurrentVersion(createVcsRoot(simpleRepo(), "name with space")), "9:9babcf2d5705");
+    assertEquals(myVcs.getCurrentVersion(createVcsRoot(simpleRepo(), "name with space")), "9babcf2d5705");
   }
 
   private List<ModificationData> collectChanges(@NotNull VcsRoot vcsRoot, @NotNull String from, @NotNull String to, @NotNull CheckoutRules rules) throws VcsException {
@@ -99,21 +98,21 @@
     ModificationData md1 = changes.get(0);
     ModificationData md2 = changes.get(1);
     ModificationData md3 = changes.get(2);
-    assertEquals(md1.getVersion(), "1:1d446e82d356");
+    assertEquals(md1.getVersion(), "1d446e82d356");
     assertEquals(md1.getDescription(), "new file added");
     List<VcsChange> files1 = md1.getChanges();
     assertEquals(1, files1.size());
     assertEquals(VcsChangeInfo.Type.ADDED, files1.get(0).getType());
     assertEquals(normalizePath(files1.get(0).getRelativeFileName()), "dir1/file3.txt");
 
-    assertEquals(md2.getVersion(), "2:7209b1f1d793");
+    assertEquals(md2.getVersion(), "7209b1f1d793");
     assertEquals(md2.getDescription(), "file4.txt added");
     List<VcsChange> files2 = md2.getChanges();
     assertEquals(1, files2.size());
     assertEquals(files2.get(0).getType(), VcsChangeInfo.Type.ADDED);
     assertEquals(normalizePath(files2.get(0).getRelativeFileName()), "dir1/file4.txt");
 
-    assertEquals(md3.getVersion(), "3:9522278aa38d");
+    assertEquals(md3.getVersion(), "9522278aa38d");
     assertEquals(md3.getDescription(), "file removed");
     List<VcsChange> files3 = md3.getChanges();
     assertEquals(1, files3.size());
@@ -312,7 +311,7 @@
     assertEquals(1, changes.size());
 
     ModificationData md1 = changes.get(0);
-    assertEquals(md1.getVersion(), "7:376dcf05cd2a");
+    assertEquals(md1.getVersion(), "376dcf05cd2a");
     assertEquals(md1.getDescription(), "new file added in the test_branch");
     List<VcsChange> files1 = md1.getChanges();
     assertEquals(1, files1.size());
@@ -323,7 +322,7 @@
     assertEquals(1, changes.size());
 
     md1 = changes.get(0);
-    assertEquals(md1.getVersion(), "8:04c3ae4c6312");
+    assertEquals(md1.getVersion(), "04c3ae4c6312");
     assertEquals(md1.getDescription(), "file modified");
   }
 
@@ -417,8 +416,8 @@
     List<ModificationData> changes = myVcs.collectChanges(defaultRoot, "11:48177654181c", branchRoot, "10:fc524efc2bc4", CheckoutRules.DEFAULT);
     assertEquals(changes.size(), 2);
 
-    assertEquals("9:8c44244d6645", changes.get(0).getVersion());
-    assertEquals("10:fc524efc2bc4", changes.get(1).getVersion());
+    assertEquals(changes.get(0).getVersion(), "8c44244d6645");
+    assertEquals(changes.get(1).getVersion(), "fc524efc2bc4");
   }
 
   public void collectChanges_should_return_all_changes_from_branch() throws Exception {
@@ -434,9 +433,9 @@
     List<ModificationData> changes = collectChanges(vcsRoot, "1:a3d15477d297", "4:6eeb8974fe67", CheckoutRules.DEFAULT);
     assertEquals(changes.size(), 3);
 
-    assertEquals("2:db8a04d262f3", changes.get(0).getVersion());
-    assertEquals("3:2538c02bafeb", changes.get(1).getVersion());
-    assertEquals("4:6eeb8974fe67", changes.get(2).getVersion());
+    assertEquals(changes.get(0).getVersion(), "db8a04d262f3");
+    assertEquals(changes.get(1).getVersion(), "2538c02bafeb");
+    assertEquals(changes.get(2).getVersion(), "6eeb8974fe67");
 
     assertFiles(Arrays.asList("A dir1/file1.txt"), changes.get(0));
     assertFiles(Arrays.asList("A dir2/file2.txt"), changes.get(1));
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RevisionFormatTest.java	Wed Jun 20 22:54:13 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/RevisionFormatTest.java	Fri Jun 22 12:41:23 2012 +0400
@@ -4,11 +4,7 @@
 import jetbrains.buildServer.TempFiles;
 import jetbrains.buildServer.buildTriggers.vcs.mercurial.command.AuthSettings;
 import jetbrains.buildServer.log.Log4jFactory;
-import jetbrains.buildServer.vcs.CheckoutRules;
-import jetbrains.buildServer.vcs.ModificationData;
-import jetbrains.buildServer.vcs.VcsException;
-import jetbrains.buildServer.vcs.VcsRoot;
-import jetbrains.buildServer.vcs.impl.VcsRootImpl;
+import jetbrains.buildServer.vcs.*;
 import jetbrains.buildServer.vcs.patches.PatchTestCase;
 import org.jetbrains.annotations.NotNull;
 import org.jmock.Mockery;
@@ -20,6 +16,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
+import java.util.Map;
 
 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.buildPatch;
 import static jetbrains.buildServer.buildTriggers.vcs.mercurial.Util.copyRepository;
@@ -57,7 +54,7 @@
 
 
   public void collect_changes_result_does_not_depend_on_revnums() throws VcsException {
-    List<ModificationData> changesWithRevnums = myVcs.collectChanges(myRoot, 
+    List<ModificationData> changesWithRevnums = myVcs.collectChanges(myRoot,
             "1:1d446e82d356", "3:9522278aa38d", CheckoutRules.DEFAULT);
     List<ModificationData> changesWithoutRevnums = myVcs.collectChanges(myRoot,
             "1d446e82d356", "9522278aa38d", CheckoutRules.DEFAULT);
@@ -103,6 +100,39 @@
   }
 
 
+  public void should_not_include_revnum_in_current_version() throws VcsException {
+    String currentVersion = myVcs.getCurrentVersion(myRoot);
+    assertFalse(currentVersion.contains(":"));
+  }
+
+
+  public void should_not_include_revnum_in_current_state() throws VcsException {
+    RepositoryState state = myVcs.getCurrentState(myRoot);
+    for (Map.Entry<String, String> entry : state.getBranchRevisions().entrySet()) {
+      String branchName = entry.getKey();
+      String revision = entry.getKey();
+      assertFalse(revision.contains(":"), "Revision of branch " + branchName + " contains revnum: " + revision);
+    }
+  }
+
+
+  public void should_not_include_revnum_in_collected_changes() throws VcsException {
+    List<ModificationData> changes = myVcs.collectChanges(myRoot, "1d446e82d356", "9522278aa38d", CheckoutRules.DEFAULT);
+    for (ModificationData c : changes) {
+      assertFalse(c.getVersion().contains(":"), "Change version contains revnum: " + c.toString());
+      for (String parentVersion : c.getParentRevisions()) {
+        assertFalse(parentVersion.contains(":"), "Parent version contains revnum: " + c.toString());
+      }
+      for (VcsChange changedFile : c.getChanges()) {
+        assertFalse(changedFile.getAfterChangeRevisionNumber().contains(":"),
+                "Vcs change contains revnum : " + changedFile.toString());
+        assertFalse(changedFile.getBeforeChangeRevisionNumber().contains(":"),
+                "Vcs change contains revnum : " + changedFile.toString());
+      }
+    }
+  }
+
+
   @Override
   protected String getTestDataPath() {
     return "mercurial-tests/testData";
@@ -111,5 +141,5 @@
   private HgRepo createRepo(@NotNull File dir) throws IOException {
     return new HgRepo(dir, Util.getHgPath(), new AuthSettings());
   }
-  
+
 }
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/UnrelatedResitoriesTest.java	Wed Jun 20 22:54:13 2012 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/UnrelatedResitoriesTest.java	Fri Jun 22 12:41:23 2012 +0400
@@ -25,7 +25,7 @@
 @Test
 public class UnrelatedResitoriesTest {
 
-  private final static String CURRENT_VERSION_OF_NEW_REPO = "18:df04faa7575a";
+  private final static String CURRENT_VERSION_OF_NEW_REPO = "df04faa7575a";
   private MercurialVcsSupport myVcs;
   private TempFiles myTempFiles;
   private File myRepositoryLocation;