changeset 321:0f5d1baa2e2c

Use revision numbers again. Because of the change in version format TeamCity core cannot establish an order between changes in different formats (with and without revision number).
author Dmitry Neverov <dmitry.neverov@jetbrains.com>
date Mon, 19 Sep 2011 11:31:58 +0400
parents c247d4637a96
children 6667765025c6
files mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/DagFeaturesTest.java mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java
diffstat 3 files changed, 28 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Thu Sep 15 11:05:57 2011 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Mon Sep 19 11:31:58 2011 +0400
@@ -589,9 +589,9 @@
     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.getId(), cset.getId());
+    final ModificationData result = new ModificationData(cset.getTimestamp(), files, cset.getDescription(), cset.getUser(), root, cset.getFullVersion(), cset.getId());
     for (ChangeSetRevision parent : parents) {
-      result.addParentRevision(parent.getId());
+      result.addParentRevision(parent.getFullVersion());
     }
     if (result.getParentRevisions().size() > 1)
       result.setCanBeIgnored(false);
--- a/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/DagFeaturesTest.java	Thu Sep 15 11:05:57 2011 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/DagFeaturesTest.java	Mon Sep 19 11:31:58 2011 +0400
@@ -2,10 +2,12 @@
 
 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.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;
@@ -15,6 +17,7 @@
 
 import static org.testng.AssertJUnit.assertEquals;
 import static org.testng.AssertJUnit.assertFalse;
+import static org.testng.AssertJUnit.assertTrue;
 
 /**
  * @author dmitry.neverov
@@ -57,12 +60,14 @@
     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());
     }
   }
 
@@ -72,5 +77,16 @@
     VcsRootImpl root = new VcsRootBuilder().repository(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	Thu Sep 15 11:05:57 2011 +0400
+++ b/mercurial-tests/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupportTest.java	Mon Sep 19 11:31:58 2011 +0400
@@ -97,21 +97,21 @@
     ModificationData md1 = changes.get(0);
     ModificationData md2 = changes.get(1);
     ModificationData md3 = changes.get(2);
-    assertEquals(md1.getVersion(), "1d446e82d356");
+    assertEquals(md1.getVersion(), "1: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(), "7209b1f1d793");
+    assertEquals(md2.getVersion(), "2: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(), "9522278aa38d");
+    assertEquals(md3.getVersion(), "3:9522278aa38d");
     assertEquals(md3.getDescription(), "file removed");
     List<VcsChange> files3 = md3.getChanges();
     assertEquals(1, files3.size());
@@ -267,7 +267,7 @@
     assertEquals(1, changes.size());
 
     ModificationData md1 = changes.get(0);
-    assertEquals(md1.getVersion(), "376dcf05cd2a");
+    assertEquals(md1.getVersion(), "7:376dcf05cd2a");
     assertEquals(md1.getDescription(), "new file added in the test_branch");
     List<VcsChange> files1 = md1.getChanges();
     assertEquals(1, files1.size());
@@ -278,7 +278,7 @@
     assertEquals(1, changes.size());
 
     md1 = changes.get(0);
-    assertEquals(md1.getVersion(), "04c3ae4c6312");
+    assertEquals(md1.getVersion(), "8:04c3ae4c6312");
     assertEquals(md1.getDescription(), "file modified");
   }
 
@@ -358,8 +358,8 @@
     List<ModificationData> changes = myVcs.collectChanges(defaultRoot, "11:48177654181c", branchRoot, "10:fc524efc2bc4", CheckoutRules.DEFAULT);
     assertEquals(changes.size(), 2);
 
-    assertEquals("8c44244d6645", changes.get(0).getVersion());
-    assertEquals("fc524efc2bc4", changes.get(1).getVersion());
+    assertEquals("9:8c44244d6645", changes.get(0).getVersion());
+    assertEquals("10:fc524efc2bc4", changes.get(1).getVersion());
   }
 
   public void collectChanges_should_return_all_changes_from_branch() throws Exception {
@@ -375,9 +375,9 @@
     List<ModificationData> changes = collectChanges(vcsRoot, "1:a3d15477d297", "4:6eeb8974fe67", CheckoutRules.DEFAULT);
     assertEquals(changes.size(), 3);
 
-    assertEquals("db8a04d262f3", changes.get(0).getVersion());
-    assertEquals("2538c02bafeb", changes.get(1).getVersion());
-    assertEquals("6eeb8974fe67", changes.get(2).getVersion());
+    assertEquals("2:db8a04d262f3", changes.get(0).getVersion());
+    assertEquals("3:2538c02bafeb", changes.get(1).getVersion());
+    assertEquals("4:6eeb8974fe67", changes.get(2).getVersion());
 
     assertFiles(Arrays.asList("A dir1/file1.txt"), changes.get(0));
     assertFiles(Arrays.asList("A dir2/file2.txt"), changes.get(1));