Rev 5072: CommitBuilder user committer, not username in revision-id. in file:///home/pqm/archives/thelove/bzr/2.2/
Canonical.com Patch Queue Manager
pqm at pqm.ubuntu.com
Wed Aug 11 23:45:46 BST 2010
At file:///home/pqm/archives/thelove/bzr/2.2/
------------------------------------------------------------
revno: 5072 [merge]
revision-id: pqm at pqm.ubuntu.com-20100811224544-6ad781joyyxxw9zw
parent: pqm at pqm.ubuntu.com-20100806204042-ayjfxve413tyg456
parent: aaron at aaronbentley.com-20100810191749-zvt6qhrkw08o77ps
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: 2.2
timestamp: Wed 2010-08-11 23:45:44 +0100
message:
CommitBuilder user committer, not username in revision-id.
modified:
NEWS NEWS-20050323055033-4e00b5db738777ff
bzrlib/generate_ids.py generate_ids.py-20061102205935-z3do15ipw6m7v26u-1
bzrlib/repository.py rev_storage.py-20051111201905-119e9401e46257e3
bzrlib/tests/per_repository/test_commit_builder.py test_commit_builder.py-20060606110838-76e3ra5slucqus81-1
=== modified file 'NEWS'
--- a/NEWS 2010-08-06 19:16:16 +0000
+++ b/NEWS 2010-08-10 19:17:49 +0000
@@ -5,6 +5,34 @@
.. contents:: List of Releases
:depth: 1
+bzr 2.2.1
+#########
+
+:Codename: ??
+:2.2.1: NOT RELEASED YET
+
+Compatibility Breaks
+********************
+
+Bug Fixes
+*********
+
+* CommitBuilder now uses the committer instead of _config.username to generate
+ the revision-id. (Aaron Bentley, #614404)
+
+Improvements
+************
+
+Documentation
+*************
+
+
+API Changes
+***********
+
+Testing
+*******
+
bzr 2.2
#######
=== modified file 'bzrlib/generate_ids.py'
--- a/bzrlib/generate_ids.py 2009-03-23 14:59:43 +0000
+++ b/bzrlib/generate_ids.py 2010-08-10 19:17:49 +0000
@@ -93,10 +93,10 @@
def gen_revision_id(username, timestamp=None):
"""Return new revision-id.
- :param username: This is the value returned by config.username(), which is
- typically a real name, followed by an email address. If found, we will
- use just the email address portion. Otherwise we flatten the real name,
- and use that.
+ :param username: The username of the committer, in the format returned by
+ config.username(). This is typically a real name, followed by an
+ email address. If found, we will use just the email address portion.
+ Otherwise we flatten the real name, and use that.
:return: A new revision id.
"""
try:
=== modified file 'bzrlib/repository.py'
--- a/bzrlib/repository.py 2010-05-25 17:27:52 +0000
+++ b/bzrlib/repository.py 2010-08-10 19:17:49 +0000
@@ -242,8 +242,7 @@
def _gen_revision_id(self):
"""Return new revision-id."""
- return generate_ids.gen_revision_id(self._config.username(),
- self._timestamp)
+ return generate_ids.gen_revision_id(self._committer, self._timestamp)
def _generate_revision_if_needed(self):
"""Create a revision id if None was supplied.
=== modified file 'bzrlib/tests/per_repository/test_commit_builder.py'
--- a/bzrlib/tests/per_repository/test_commit_builder.py 2010-05-11 13:31:31 +0000
+++ b/bzrlib/tests/per_repository/test_commit_builder.py 2010-08-10 19:17:49 +0000
@@ -1303,3 +1303,27 @@
self.addCleanup(repo_local.unlock)
self.assertRaises(errors.BzrError, repo_local.get_commit_builder,
branch, [], branch.get_config())
+
+ def test_committer_no_username(self):
+ # Ensure that when no username is available but a committer is
+ # supplied, commit works.
+ del os.environ['EMAIL']
+ tree = self.make_branch_and_tree(".")
+ tree.lock_write()
+ try:
+ # Make sure no username is available.
+ self.assertRaises(errors.NoWhoami, tree.branch.get_commit_builder,
+ [])
+ builder = tree.branch.get_commit_builder(
+ [], committer='me at example.com')
+ try:
+ list(builder.record_iter_changes(tree, tree.last_revision(),
+ tree.iter_changes(tree.basis_tree())))
+ builder.finish_inventory()
+ except:
+ builder.abort()
+ raise
+ repo = tree.branch.repository
+ repo.commit_write_group()
+ finally:
+ tree.unlock()
More information about the bazaar-commits
mailing list