Rev 5061: ``bzrlib.branchbuilder.BranchBuilder.build_snapshot`` now accepts a in http://bazaar.launchpad.net/~lifeless/bzr/msgeditor
Robert Collins
robertc at robertcollins.net
Sat Feb 27 12:27:57 GMT 2010
At http://bazaar.launchpad.net/~lifeless/bzr/msgeditor
------------------------------------------------------------
revno: 5061
revision-id: robertc at robertcollins.net-20100227122733-2o3me3fkk3pk36ns
parent: pqm at pqm.ubuntu.com-20100226141436-t8s3uqt5w9ktt04g
committer: Robert Collins <robertc at robertcollins.net>
branch nick: msgeditor
timestamp: Sat 2010-02-27 23:27:33 +1100
message:
``bzrlib.branchbuilder.BranchBuilder.build_snapshot`` now accepts a
``message_callback`` in the same way that commit does. (Robert Collins)
=== modified file 'NEWS'
--- a/NEWS 2010-02-26 04:43:31 +0000
+++ b/NEWS 2010-02-27 12:27:33 +0000
@@ -109,6 +109,9 @@
Internals
*********
+* ``bzrlib.branchbuilder.BranchBuilder.build_snapshot`` now accepts a
+ ``message_callback`` in the same way that commit does. (Robert Collins)
+
* ``bzrlib.commands.run_bzr`` is more extensible: callers can supply the
functions to load or disable plugins if they wish to use a different
plugin mechanism; the --help, --version and no-command name code paths
=== modified file 'bzrlib/branchbuilder.py'
--- a/bzrlib/branchbuilder.py 2009-08-05 02:12:22 +0000
+++ b/bzrlib/branchbuilder.py 2010-02-27 12:27:33 +0000
@@ -103,11 +103,11 @@
finally:
tree.unlock()
- def _do_commit(self, tree, message=None, **kwargs):
+ def _do_commit(self, tree, message=None, message_callback=None, **kwargs):
reporter = commit.NullCommitReporter()
- if message is None:
+ if message is None and message_callback is None:
message = u'commit %d' % (self._branch.revno() + 1,)
- return tree.commit(message,
+ return tree.commit(message, message_callback=message_callback,
reporter=reporter,
**kwargs)
@@ -162,7 +162,7 @@
def build_snapshot(self, revision_id, parent_ids, actions,
message=None, timestamp=None, allow_leftmost_as_ghost=False,
- committer=None, timezone=None):
+ committer=None, timezone=None, message_callback=None):
"""Build a commit, shaped in a specific way.
:param revision_id: The handle for the new commit, can be None
@@ -175,6 +175,8 @@
('rename', ('orig-path', 'new-path'))
:param message: An optional commit message, if not supplied, a default
commit message will be written.
+ :param message_callback: A message callback to use for the commit, as
+ per mutabletree.commit.
:param timestamp: If non-None, set the timestamp of the commit to this
value.
:param timezone: An optional timezone for timestamp.
@@ -244,7 +246,8 @@
for file_id, content in new_contents.iteritems():
tree.put_file_bytes_non_atomic(file_id, content)
return self._do_commit(tree, message=message, rev_id=revision_id,
- timestamp=timestamp, timezone=timezone, committer=committer)
+ timestamp=timestamp, timezone=timezone, committer=committer,
+ message_callback=message_callback)
finally:
tree.unlock()
=== modified file 'bzrlib/tests/test_branchbuilder.py'
--- a/bzrlib/tests/test_branchbuilder.py 2009-05-07 05:08:46 +0000
+++ b/bzrlib/tests/test_branchbuilder.py 2010-02-27 12:27:33 +0000
@@ -171,6 +171,15 @@
rev = branch.repository.get_revision(rev_id)
self.assertEqual(u'Foo', rev.message)
+ def test_commit_message_callback(self):
+ builder = BranchBuilder(self.get_transport().clone('foo'))
+ rev_id = builder.build_snapshot(None, None,
+ [('add', (u'', None, 'directory', None))],
+ message_callback=lambda x:u'Foo')
+ branch = builder.get_branch()
+ rev = branch.repository.get_revision(rev_id)
+ self.assertEqual(u'Foo', rev.message)
+
def test_modify_file(self):
builder = self.build_a_rev()
rev_id2 = builder.build_snapshot('B-id', None,
More information about the bazaar-commits
mailing list