diff tests/test_utility_commands.py @ 149:04800fda7af5

rebase: preserve local branch names. Note: this commit introduces a dependency on Mercurial 1.1.1 or later.
author Augie Fackler <durin42@gmail.com>
date Mon, 22 Dec 2008 21:20:10 -0600
parents 9ffde8662967
children 46f6b872c988
line wrap: on
line diff
--- a/tests/test_utility_commands.py
+++ b/tests/test_utility_commands.py
@@ -1,7 +1,10 @@
+import os
 import urllib # for url quoting
 
 from mercurial import ui
 from mercurial import hg
+from mercurial import revlog
+from mercurial import context
 
 import utility_commands
 import fetch_command
@@ -49,6 +52,32 @@ class UtilityTests(test_util.TestBase):
         expected = 'file://%s\n' % urllib.quote(self.repo_path)
         self.assertEqual(u.stream.getvalue(), expected)
 
+    def test_rebase(self):
+        self._load_fixture_and_fetch('two_revs.svndump')
+        parents = (self.repo[0].node(), revlog.nullid, )
+        def filectxfn(repo, memctx, path):
+            return context.memfilectx(path=path,
+                                      data='added',
+                                      islink=False,
+                                      isexec=False,
+                                      copied=False)
+        ctx = context.memctx(self.repo,
+                             parents,
+                             'automated test',
+                             ['added_bogus_file', 'other_added_file', ],
+                             filectxfn,
+                             'testy',
+                             '2008-12-21 16:32:00 -0500',
+                             {'branch': 'localbranch', })
+        self.repo.commitctx(ctx)
+        self.assertEqual(self.repo['tip'].branch(), 'localbranch')
+        beforerebasehash = self.repo['tip'].node()
+        hg.update(self.repo, 'tip')
+        utility_commands.rebase_commits(ui.ui(), self.repo, os.path.dirname(self.repo.path))
+        self.assertEqual(self.repo['tip'].branch(), 'localbranch')
+        self.assertEqual(self.repo['tip'].parents()[0].parents()[0], self.repo[0])
+        self.assertNotEqual(beforerebasehash, self.repo['tip'].node())
+
     def test_url_is_normalized(self):
         """Verify url gets normalized on initial clone.
         """