Rev 2863: option -c for merge command (bialix, r=ian) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Tue Sep 25 20:46:04 BST 2007
At file:///home/pqm/archives/thelove/bzr/%2Btrunk/
------------------------------------------------------------
revno: 2863
revision-id: pqm at pqm.ubuntu.com-20070925194602-h8z36snrc8eqjj4j
parent: pqm at pqm.ubuntu.com-20070925092014-7t2piu8gmm5hvbks
parent: bialix at ukr.net-20070925190431-latvmyau7wq0ny90
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-25 20:46:02 +0100
message:
option -c for merge command (bialix,r=ian)
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/blackbox/test_merge.py test_merge.py-20060323225809-9bc0459c19917f41
------------------------------------------------------------
revno: 2839.5.3
merged: bialix at ukr.net-20070925190431-latvmyau7wq0ny90
parent: bialix at ukr.net-20070925190148-otovr0vsac3h9nps
parent: pqm at pqm.ubuntu.com-20070925092014-7t2piu8gmm5hvbks
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: merge.--changes
timestamp: Tue 2007-09-25 22:04:31 +0300
message:
merge bzr.dev
------------------------------------------------------------
revno: 2839.5.2
merged: bialix at ukr.net-20070925190148-otovr0vsac3h9nps
parent: bialix at ukr.net-20070922175238-utwpezl628vcusbl
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: merge.--changes
timestamp: Tue 2007-09-25 22:01:48 +0300
message:
tweaks suggested by Ian
------------------------------------------------------------
revno: 2839.5.1
merged: bialix at ukr.net-20070922175238-utwpezl628vcusbl
parent: pqm at pqm.ubuntu.com-20070920125023-upjqmzln7mjtvj1h
committer: Alexander Belchenko <bialix at ukr.net>
branch nick: merge.--changes
timestamp: Sat 2007-09-22 20:52:38 +0300
message:
add -c option to merge command
=== modified file 'NEWS'
--- a/NEWS 2007-09-25 09:20:14 +0000
+++ b/NEWS 2007-09-25 19:04:31 +0000
@@ -57,6 +57,9 @@
* Mutt is now a supported mail client; set ``mail_client=mutt`` in your
bazaar.conf and ``send`` will use mutt. (Keir Mierle)
+ * New option ``-c``/``--change`` for ``merge`` command for cherrypicking
+ changes from one revision. (Alexander Belchenko, #141368)
+
* Show encodings, locale and list of plugins in the traceback message.
(Martin Pool, #63894)
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2007-09-25 03:21:08 +0000
+++ b/bzrlib/builtins.py 2007-09-25 19:04:31 +0000
@@ -2701,6 +2701,7 @@
_see_also = ['update', 'remerge', 'status-flags']
takes_args = ['branch?']
takes_options = [
+ 'change',
'revision',
Option('force',
help='Merge even if the destination tree has uncommitted changes.'),
=== modified file 'bzrlib/tests/blackbox/test_merge.py'
--- a/bzrlib/tests/blackbox/test_merge.py 2007-09-14 13:58:32 +0000
+++ b/bzrlib/tests/blackbox/test_merge.py 2007-09-25 19:01:48 +0000
@@ -344,3 +344,39 @@
self.run_bzr('merge -d target -r revid:rev2a branch_b')
self.failUnlessExists('target/file1')
self.failIfExists('target/file2')
+
+ def assertDirectoryContent(self, directory, entries, message=''):
+ """Assert whether entries (file or directories) exist in a directory.
+
+ It also checks that there are no extra entries.
+ """
+ ondisk = os.listdir(directory)
+ if set(ondisk) == set(entries):
+ return
+ if message:
+ message += '\n'
+ raise AssertionError(
+ '%s"%s" directory content is different:\na = %s\nb = %s\n'
+ % (message, directory, sorted(entries), sorted(ondisk)))
+
+ def test_cherrypicking_merge(self):
+ # make source branch
+ source = self.make_branch_and_tree('source')
+ for f in ('a', 'b', 'c', 'd'):
+ self.build_tree(['source/'+f])
+ source.add(f)
+ source.commit('added '+f, rev_id='rev_'+f)
+ # target branch
+ target = source.bzrdir.sprout('target', 'rev_a').open_workingtree()
+ self.assertDirectoryContent('target', ['.bzr', 'a'])
+ # pick 1 revision
+ self.run_bzr('merge -d target -r revid:rev_b..revid:rev_c source')
+ self.assertDirectoryContent('target', ['.bzr', 'a', 'c'])
+ target.revert()
+ # pick 2 revisions
+ self.run_bzr('merge -d target -r revid:rev_b..revid:rev_d source')
+ self.assertDirectoryContent('target', ['.bzr', 'a', 'c', 'd'])
+ target.revert()
+ # pick 1 revision with option --changes
+ self.run_bzr('merge -d target -c revid:rev_d source')
+ self.assertDirectoryContent('target', ['.bzr', 'a', 'd'])
More information about the bazaar-commits
mailing list