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