Rev 4788: Handle when pull --overwrite no longer has the tip in the ancestry. in http://bazaar.launchpad.net/~jameinel/bzr/2.1.0b4-pull-v

John Arbash Meinel john at arbash-meinel.com
Wed Dec 9 17:29:40 GMT 2009


At http://bazaar.launchpad.net/~jameinel/bzr/2.1.0b4-pull-v

------------------------------------------------------------
revno: 4788
revision-id: john at arbash-meinel.com-20091209172936-wwrhk4kzu68t3jyu
parent: john at arbash-meinel.com-20091208174804-2eai7wn4ekuhg4tt
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: 2.1.0b4-pull-v
timestamp: Wed 2009-12-09 11:29:36 -0600
message:
  Handle when pull --overwrite no longer has the tip in the ancestry.
-------------- next part --------------
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2009-12-08 17:48:04 +0000
+++ b/bzrlib/builtins.py	2009-12-09 17:29:36 +0000
@@ -1031,11 +1031,16 @@
                        % (target, result.old_revid, result.new_revid))
                 result.report(self.outf)
                 if verbose and result.old_revid != result.new_revid:
-                    old_dotted_revno = branch_to.revision_id_to_dotted_revno(
-                        result.old_revid)
-                    old_dotted_revno = '.'.join([str(i) for i in old_dotted_revno])
-                    self.outf.write('Tip revision before pull was: %s\n'
-                                    % (old_dotted_revno,))
+                    try:
+                        old_revno_in_to = branch_to.revision_id_to_dotted_revno(
+                            result.old_revid)
+                        old_revstr = '.'.join([str(i) for i in old_revno_in_to])
+                    except errors.NoSuchRevision:
+                        self.outf.write('Tip revision no longer in ancestry.'
+                                        ' Was revid:%s\n' % (result.old_revid,))
+                    else:
+                        self.outf.write('Tip revision before pull was: %s\n'
+                                        % (old_revstr,))
                     log.show_branch_change(
                         branch_to, self.outf, result.old_revno,
                         result.old_revid)

=== modified file 'bzrlib/tests/blackbox/test_pull.py'
--- a/bzrlib/tests/blackbox/test_pull.py	2009-12-08 17:41:06 +0000
+++ b/bzrlib/tests/blackbox/test_pull.py	2009-12-09 17:29:36 +0000
@@ -415,6 +415,23 @@
         out = self.run_bzr('pull -d target -v')[0]
         self.assertContainsRe(out, 'Tip revision before pull was: 1.1.2')
 
+    def test_pull_verbose_prints_not_in_ancestry_tip(self):
+        builder = self.make_branch_builder('source')
+        builder.start_series()
+        builder.build_snapshot('A', None, [
+            ('add', ('', 'TREE_ROOT', 'directory', None))])
+        builder.build_snapshot('B', ['A'], [])
+        builder.build_snapshot('C', ['B'], [])
+        builder.build_snapshot('D', ['A', 'B'], [])
+        builder.finish_series()
+        b = builder.get_branch()
+        b.lock_write()
+        self.addCleanup(b.unlock)
+        b.bzrdir.sprout('target', revision_id='C')
+        out = self.run_bzr('pull -d target -v --overwrite')[0]
+        self.assertContainsRe(out, 'Tip revision no longer in ancestry.'
+                                   ' Was revid:C')
+
     def test_pull_verbose_does_not_print_tip_when_nothing_is_pulled(self):
         parent = self.make_branch_and_tree('parent')
         rev1 = parent.commit(message='first commit', rev_id='number-one')



More information about the bazaar-commits mailing list