Rev 2830: re-apply Aaron's fix for #94975 (Ian Clatworthy) in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue Sep 18 04:40:09 BST 2007


At file:///home/pqm/archives/thelove/bzr/%2Btrunk/

------------------------------------------------------------
revno: 2830
revision-id: pqm at pqm.ubuntu.com-20070918034007-n72x452efuovdelm
parent: pqm at pqm.ubuntu.com-20070917231144-u7uxe56m03v95chg
parent: ian.clatworthy at internode.on.net-20070918012959-1unlrzxpriz9bfhg
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-09-18 04:40:07 +0100
message:
  re-apply Aaron's fix for #94975 (Ian Clatworthy)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/commit.py               commit.py-20050511101309-79ec1a0168e0e825
  bzrlib/tests/blackbox/test_commit.py test_commit.py-20060212094538-ae88fc861d969db0
  bzrlib/tests/test_commit.py    test_commit.py-20050914060732-279f057f8c295434
    ------------------------------------------------------------
    revno: 2829.1.1
    merged: ian.clatworthy at internode.on.net-20070918012959-1unlrzxpriz9bfhg
    parent: pqm at pqm.ubuntu.com-20070917231144-u7uxe56m03v95chg
    committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
    branch nick: ianc-integration
    timestamp: Tue 2007-09-18 11:29:59 +1000
    message:
      re-apply Aaron's fix for #94975 (Ian Clatworthy)
=== modified file 'NEWS'
--- a/NEWS	2007-09-17 19:16:10 +0000
+++ b/NEWS	2007-09-18 01:29:59 +0000
@@ -45,6 +45,8 @@
      will remain opened.
      (Vincent Ladeuil, #140055)
 
+   * Fix commit ordering in corner case (Aaron Bentley, #94975)
+
   API BREAKS:
 
    * The ``VersionedFile`` interface now allows content checks to be bypassed

=== modified file 'bzrlib/commit.py'
--- a/bzrlib/commit.py	2007-09-14 00:13:04 +0000
+++ b/bzrlib/commit.py	2007-09-18 01:29:59 +0000
@@ -699,7 +699,7 @@
         deleted_paths = set()
         work_inv = self.work_tree.inventory
         assert work_inv.root is not None
-        entries = work_inv.iter_entries()
+        entries = work_inv.iter_entries_by_dir()
         if not self.builder.record_root_entry:
             entries.next()
         for path, existing_ie in entries:

=== modified file 'bzrlib/tests/blackbox/test_commit.py'
--- a/bzrlib/tests/blackbox/test_commit.py	2007-09-13 05:36:27 +0000
+++ b/bzrlib/tests/blackbox/test_commit.py	2007-09-18 01:29:59 +0000
@@ -219,9 +219,9 @@
             'added newdir\n'
             'added newfile\n'
             'renamed dirtorename => renameddir\n'
+            'renamed filetorename => renamedfile\n'
             'renamed dirtoreparent => renameddir/reparenteddir\n'
             'renamed filetoreparent => renameddir/reparentedfile\n'
-            'renamed filetorename => renamedfile\n'
             'deleted dirtoremove\n'
             'deleted filetoremove\n'
             'Committed revision 2.\n' % (expected, ),

=== modified file 'bzrlib/tests/test_commit.py'
--- a/bzrlib/tests/test_commit.py	2007-09-03 13:17:52 +0000
+++ b/bzrlib/tests/test_commit.py	2007-09-18 01:29:59 +0000
@@ -528,9 +528,9 @@
             ('change', 'added', 'newdir'),
             ('change', 'added', 'newfile'),
             ('renamed', 'renamed', 'dirtorename', 'renameddir'),
+            ('renamed', 'renamed', 'filetorename', 'renamedfile'),
             ('renamed', 'renamed', 'dirtoreparent', 'renameddir/reparenteddir'),
             ('renamed', 'renamed', 'filetoreparent', 'renameddir/reparentedfile'),
-            ('renamed', 'renamed', 'filetorename', 'renamedfile'),
             ('deleted', 'dirtoremove'),
             ('deleted', 'filetoremove'),
             ],
@@ -699,6 +699,17 @@
         self.assertEqual('Selected-file commit of merges is not supported'
                          ' yet: files bar, baz', str(err))
 
+    def test_commit_ordering(self):
+        """Test of corner-case commit ordering error"""
+        tree = self.make_branch_and_tree('.')
+        self.build_tree(['a/', 'a/z/', 'a/c/', 'a/z/x', 'a/z/y'])
+        tree.add(['a/', 'a/z/', 'a/c/', 'a/z/x', 'a/z/y'])
+        tree.commit('setup')
+        self.build_tree(['a/c/d/'])
+        tree.add('a/c/d')
+        tree.rename_one('a/z/x', 'a/c/d/x')
+        tree.commit('test', specific_files=['a/z/y'])
+ 
     def test_commit_no_author(self):
         """The default kwarg author in MutableTree.commit should not add
         the 'author' revision property.




More information about the bazaar-commits mailing list