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