Rev 2591: (Aaron Bentley) Fix bug #94975 by using iter_entries_by_dir instead of iter_entries to ensure parents come before children in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Thu Jul 5 22:33:00 BST 2007


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

------------------------------------------------------------
revno: 2591
revision-id: pqm at pqm.ubuntu.com-20070705213250-ae4p76jrqrmo3dko
parent: pqm at pqm.ubuntu.com-20070705054119-z89j99ne0vvywkgu
parent: aaron.bentley at utoronto.ca-20070705101146-on81r29qia562yfe
committer: Canonical.com Patch Queue Manager<pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Thu 2007-07-05 22:32:50 +0100
message:
  (Aaron Bentley) Fix bug #94975 by using iter_entries_by_dir instead of iter_entries to ensure parents come before children
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: 1551.2.49.1.40.1.22.1.42.1.31.1.39.1.17.1.39
    merged: aaron.bentley at utoronto.ca-20070705101146-on81r29qia562yfe
    parent: aaron.bentley at utoronto.ca-20070705101013-bmnyx2s2jnhtcu87
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: Aaron's mergeable stuff
    timestamp: Thu 2007-07-05 06:11:46 -0400
    message:
      Fix commit ordering (#94975)
    ------------------------------------------------------------
    revno: 1551.2.49.1.40.1.22.1.42.1.31.1.39.1.17.1.38
    merged: aaron.bentley at utoronto.ca-20070705101013-bmnyx2s2jnhtcu87
    parent: aaron.bentley at utoronto.ca-20070705012321-nk0ej02hpmmpbwqw
    parent: pqm at pqm.ubuntu.com-20070705054119-z89j99ne0vvywkgu
    committer: Aaron Bentley <aaron.bentley at utoronto.ca>
    branch nick: Aaron's mergeable stuff
    timestamp: Thu 2007-07-05 06:10:13 -0400
    message:
      Merge bzr.dev
=== modified file 'NEWS'
--- a/NEWS	2007-07-05 01:22:38 +0000
+++ b/NEWS	2007-07-05 10:11:46 +0000
@@ -33,6 +33,8 @@
     * Warn when setting ``push_location`` to a value that will be masked by
       locations.conf.  (Aaron Bentley, #122286)
 
+    * Fix commit ordering in corner case (Aaron Bentley, #94975)
+
   IMPROVEMENTS:
 
     * The --lsprof-file option now dumps a text rendering of the profiling

=== modified file 'bzrlib/commit.py'
--- a/bzrlib/commit.py	2007-07-05 04:27:32 +0000
+++ b/bzrlib/commit.py	2007-07-05 10:11:46 +0000
@@ -599,7 +599,7 @@
         self.pb_entries_total = len(work_inv)
 
         # Check and warn about old CommitBuilders
-        entries = work_inv.iter_entries()
+        entries = work_inv.iter_entries_by_dir()
         if not self.builder.record_root_entry:
             symbol_versioning.warn('CommitBuilders should support recording'
                 ' the root entry as of bzr 0.10.', DeprecationWarning, 

=== modified file 'bzrlib/tests/blackbox/test_commit.py'
--- a/bzrlib/tests/blackbox/test_commit.py	2007-06-28 12:26:11 +0000
+++ b/bzrlib/tests/blackbox/test_commit.py	2007-07-05 10:11:46 +0000
@@ -210,9 +210,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',

=== modified file 'bzrlib/tests/test_commit.py'
--- a/bzrlib/tests/test_commit.py	2007-06-25 20:05:06 +0000
+++ b/bzrlib/tests/test_commit.py	2007-07-05 10:11:46 +0000
@@ -525,9 +525,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'),
             ],
@@ -695,3 +695,14 @@
         self.assertEqual(['bar', 'baz'], err.files)
         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'])




More information about the bazaar-commits mailing list