Rev 2259: Pull also merges tags and warns if they conflict in http://sourcefrog.net/bzr/tags

Martin Pool mbp at sourcefrog.net
Sun Feb 25 11:49:17 GMT 2007


At http://sourcefrog.net/bzr/tags

------------------------------------------------------------
revno: 2259
revision-id: mbp at sourcefrog.net-20070225114916-6ahkk1nkyknophma
parent: mbp at sourcefrog.net-20070225111726-w5a6asp76autb02f
committer: Martin Pool <mbp at sourcefrog.net>
branch nick: tags
timestamp: Sun 2007-02-25 22:49:16 +1100
message:
  Pull also merges tags and warns if they conflict
modified:
  bzrlib/branch.py               branch.py-20050309040759-e4baf4e0d046576e
  bzrlib/builtins.py             builtins.py-20050830033751-fc01482b9ca23183
  bzrlib/tests/blackbox/test_non_ascii.py test_non_ascii.py-20060105214030-68010be784a5d854
  bzrlib/tests/blackbox/test_pull.py test_pull.py-20051201144907-64959364f629947f
  bzrlib/tests/blackbox/test_tags.py test_tags.py-20070116132048-5h4qak2cm22jlb9e-1
=== modified file 'bzrlib/branch.py'
--- a/bzrlib/branch.py	2007-02-25 11:11:00 +0000
+++ b/bzrlib/branch.py	2007-02-25 11:49:16 +0000
@@ -2076,6 +2076,13 @@
         # DEPRECATED: pull used to return the change in revno
         return self.new_revno - self.old_revno
 
+    def report(self, to_file):
+        if self.old_revid == self.new_revid:
+            to_file.write('No revisions to pull.\n')
+        else:
+            to_file.write('Now on revision %d.\n' % self.new_revno)
+        self._show_tag_conficts(to_file)
+
 
 class PushResult(_Result):
     """Describes the result of a Branch.push operation"""

=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py	2007-02-25 11:11:00 +0000
+++ b/bzrlib/builtins.py	2007-02-25 11:49:16 +0000
@@ -603,14 +603,11 @@
         else:
             result = branch_to.pull(branch_from, overwrite, rev_id)
 
-        if result.old_revid == result.new_revid:
-            note('No revisions to pull.')
-        elif verbose:
+        result.report(self.outf)
+        if verbose:
             from bzrlib.log import show_changed_revisions
             new_rh = branch_to.revision_history()
             show_changed_revisions(branch_to, old_rh, new_rh, to_file=self.outf)
-        else:
-            note('Now on revision %d.' % result.new_revno)
 
 
 class cmd_push(Command):

=== modified file 'bzrlib/tests/blackbox/test_non_ascii.py'
--- a/bzrlib/tests/blackbox/test_non_ascii.py	2006-10-11 23:08:27 +0000
+++ b/bzrlib/tests/blackbox/test_non_ascii.py	2007-02-25 11:49:16 +0000
@@ -228,7 +228,8 @@
         os.chdir(u'../' + dirname2)
         txt = bzr('pull')
 
-        self.assertEqual(u'Using saved location: %s/\n' % (pwd,), txt)
+        self.assertEqual(u'Using saved location: %s/\n'
+                'No revisions to pull.\n' % (pwd,), txt)
 
         os.chdir('../' + dirname1)
         open('a', 'ab').write('and yet more\n')

=== modified file 'bzrlib/tests/blackbox/test_pull.py'
--- a/bzrlib/tests/blackbox/test_pull.py	2007-02-25 10:47:29 +0000
+++ b/bzrlib/tests/blackbox/test_pull.py	2007-02-25 11:49:16 +0000
@@ -297,11 +297,11 @@
         bundle_file.close()
 
         os.chdir('../branch_b')
-        output = self.run_bzr('pull', '../bundle')
-        self.assertEqual('', output[0])
-        self.assertEqual(' M  a\nAll changes applied successfully.\n'
-                         'Now on revision 2.\n',
-                         output[1])
+        out, err = self.run_bzr('pull', '../bundle')
+        self.assertEqual(out,
+                         'Now on revision 2.\n')
+        self.assertEqual(err,
+                ' M  a\nAll changes applied successfully.\n')
 
         self.assertEqualDiff(tree_a.branch.revision_history(),
                              tree_b.branch.revision_history())
@@ -314,6 +314,6 @@
                              testament_b.as_text())
 
         # it is legal to attempt to pull an already-merged bundle
-        output = self.run_bzr('pull', '../bundle')
-        self.assertEqual('', output[0])
-        self.assertEqual('No revisions to pull.\n', output[1])
+        out, err = self.run_bzr('pull', '../bundle')
+        self.assertEqual(err, '')
+        self.assertEqual(out, 'No revisions to pull.\n')

=== modified file 'bzrlib/tests/blackbox/test_tags.py'
--- a/bzrlib/tests/blackbox/test_tags.py	2007-02-25 11:11:00 +0000
+++ b/bzrlib/tests/blackbox/test_tags.py	2007-02-25 11:49:16 +0000
@@ -105,6 +105,7 @@
             u'^\u30d0zaar  *revid-1'.encode('utf-8'))
 
     def test_conflicting_tags(self):
+        # setup two empty branches with different tags
         t1 = self.make_branch_and_tree('one')
         t2 = self.make_branch_and_tree('two')
         b1 = t1.branch
@@ -112,6 +113,11 @@
         tagname = u'\u30d0zaar'
         b1.tags.set_tag(tagname, 'revid1')
         b2.tags.set_tag(tagname, 'revid2')
+        # push should give a warning about the tags
         out, err = self.run_bzr('push', '-d', 'one', 'two', encoding='utf-8')
         self.assertContainsRe(out,
                 'Conflicting tags:\n.*' + tagname.encode('utf-8'))
+        # pull should give a warning about the tags
+        out, err = self.run_bzr('pull', '-d', 'one', 'two', encoding='utf-8')
+        self.assertContainsRe(out,
+                'Conflicting tags:\n.*' + tagname.encode('utf-8'))




More information about the bazaar-commits mailing list