Rev 4418: Add tests that dotted revno and unknown revno are both supported. in http://bazaar.launchpad.net/~jameinel/bzr/tree_opt

John Arbash Meinel john at arbash-meinel.com
Fri Jun 5 14:27:24 BST 2009


At http://bazaar.launchpad.net/~jameinel/bzr/tree_opt

------------------------------------------------------------
revno: 4418
revision-id: john at arbash-meinel.com-20090605132617-7kx1smlz82ktg5ej
parent: john at arbash-meinel.com-20090605132035-n0zufqegqxp9kqxa
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: tree_opt
timestamp: Fri 2009-06-05 08:26:17 -0500
message:
  Add tests that dotted revno and unknown revno are both supported.
-------------- next part --------------
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-06-05 08:28:06 +0000
+++ b/bzrlib/builtins.py	2009-06-05 13:26:17 +0000
@@ -480,15 +480,16 @@
 
     @display_command
     def run(self, tree=False, location=u'.'):
-        branch = Branch.open_containing(location)[0]
         if tree:
-            revid = WorkingTree.open_containing(location)[0]._last_revision()
+            wt = WorkingTree.open_containing(location)[0]
+            revid = wt.last_revision()
             try:
-                revno_t = branch.revision_id_to_dotted_revno(revid)
+                revno_t = wt.branch.revision_id_to_dotted_revno(revid)
             except errors.NoSuchRevision:
                 revno_t = ('???',)
             revno = ".".join(str(n) for n in revno_t)
         else:
+            branch = Branch.open_containing(location)[0]
             revno = branch.revno()
         self.outf.write(str(revno) + '\n')
 

=== modified file 'bzrlib/tests/blackbox/test_revno.py'
--- a/bzrlib/tests/blackbox/test_revno.py	2009-06-05 13:20:35 +0000
+++ b/bzrlib/tests/blackbox/test_revno.py	2009-06-05 13:26:17 +0000
@@ -70,3 +70,42 @@
         self.assertEqual('', err)
         self.assertEqual('0\n', out)
 
+    def test_dotted_revno_tree(self):
+        builder = self.make_branch_builder('branch')
+        builder.start_series()
+        builder.build_snapshot('A-id', None, [
+            ('add', ('', 'root-id', 'directory', None)),
+            ('add', ('file', 'file-id', 'file', 'content\n'))])
+        builder.build_snapshot('B-id', ['A-id'], [])
+        builder.build_snapshot('C-id', ['A-id', 'B-id'], [])
+        builder.finish_series()
+        b = builder.get_branch()
+        co_b = b.create_checkout('checkout_b', lightweight=True,
+                                 revision_id='B-id')
+        out, err = self.run_bzr('revno checkout_b')
+        self.assertEqual('', err)
+        self.assertEqual('2\n', out)
+        out, err = self.run_bzr('revno --tree checkout_b')
+        self.assertEqual('', err)
+        self.assertEqual('1.1.1\n', out)
+
+    def test_stale_revno_tree(self):
+        builder = self.make_branch_builder('branch')
+        builder.start_series()
+        builder.build_snapshot('A-id', None, [
+            ('add', ('', 'root-id', 'directory', None)),
+            ('add', ('file', 'file-id', 'file', 'content\n'))])
+        builder.build_snapshot('B-id', ['A-id'], [])
+        builder.build_snapshot('C-id', ['A-id'], [])
+        builder.finish_series()
+        b = builder.get_branch()
+        # The branch is now at "C-id", but the checkout is still at "B-id"
+        # which is no longer in the history
+        co_b = b.create_checkout('checkout_b', lightweight=True,
+                                 revision_id='B-id')
+        out, err = self.run_bzr('revno checkout_b')
+        self.assertEqual('', err)
+        self.assertEqual('2\n', out)
+        out, err = self.run_bzr('revno --tree checkout_b')
+        self.assertEqual('', err)
+        self.assertEqual('???\n', out)



More information about the bazaar-commits mailing list