Rev 2676: (Marius Kruger) InterTree.compare doesn't pass require_versioned on correctly in file:///home/pqm/archives/thelove/bzr/%2Btrunk/

Canonical.com Patch Queue Manager pqm at pqm.ubuntu.com
Tue Aug 7 08:17:35 BST 2007


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

------------------------------------------------------------
revno: 2676
revision-id: pqm at pqm.ubuntu.com-20070807071734-qrnzeyjktp2f7022
parent: pqm at pqm.ubuntu.com-20070807061316-b32atzzop4r4y21g
parent: ian.clatworthy at internode.on.net-20070807063833-12nu9ot1g7s1w6g8
committer: Canonical.com Patch Queue Manager <pqm at pqm.ubuntu.com>
branch nick: +trunk
timestamp: Tue 2007-08-07 08:17:34 +0100
message:
  (Marius Kruger) InterTree.compare doesn't pass require_versioned on correctly
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/delta.py                delta.py-20050729221636-54cf14ef94783d0a
  bzrlib/tests/test_tree.py      test_tree.py-20060724065232-khgrr0vvmt6ih0mi-1
  bzrlib/tree.py                 tree.py-20050309040759-9d5f2496be663e77
    ------------------------------------------------------------
    revno: 2675.1.2
    merged: ian.clatworthy at internode.on.net-20070807063833-12nu9ot1g7s1w6g8
    parent: ian.clatworthy at internode.on.net-20070807063544-vkmq3rfivhhri7ij
    committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
    branch nick: ianc-integration
    timestamp: Tue 2007-08-07 16:38:33 +1000
    message:
      Updated NEWS re Marius Kruger's InterTree.compare fix
    ------------------------------------------------------------
    revno: 2675.1.1
    merged: ian.clatworthy at internode.on.net-20070807063544-vkmq3rfivhhri7ij
    parent: pqm at pqm.ubuntu.com-20070807061316-b32atzzop4r4y21g
    parent: amanic at gmail.com-20070731194215-4d9r1l48kr4or3wj
    committer: Ian Clatworthy <ian.clatworthy at internode.on.net>
    branch nick: ianc-integration
    timestamp: Tue 2007-08-07 16:35:44 +1000
    message:
      (Marius Kruger) InterTree.compare doesn't pass require_versioned on correctly
    ------------------------------------------------------------
    revno: 2655.2.2
    merged: amanic at gmail.com-20070731194215-4d9r1l48kr4or3wj
    parent: amanic at gmail.com-20070728224528-u22jpgybnzjghd9l
    committer: Marius Kruger <amanic at gmail.com>
    branch nick: bzr.intertree_compare_ignores_param
    timestamp: Tue 2007-07-31 21:42:15 +0200
    message:
      Rather use assertRaises in test_changes_from_with_require_versioned
    ------------------------------------------------------------
    revno: 2655.2.1
    merged: amanic at gmail.com-20070728224528-u22jpgybnzjghd9l
    parent: pqm at pqm.ubuntu.com-20070727061532-14ly852y2g2dbcb8
    committer: Marius Kruger <amanic at gmail.com>
    branch nick: bzr.intertree_compare_ignores_param
    timestamp: Sun 2007-07-29 00:45:28 +0200
    message:
      InterTree.compare and delta._compare_trees did not pass its 
      parameter require_versioned on correctly.
=== modified file 'NEWS'
--- a/NEWS	2007-08-07 02:12:43 +0000
+++ b/NEWS	2007-08-07 06:38:33 +0000
@@ -206,6 +206,9 @@
     * ``Repository`` objects can now be compared with ``==`` and ``!=`` to
       determine if they are the same repository.  (Andrew Bennetts)
 
+    * InterTree.compare now passes require_versioned on correctly.
+      (Marius Kruger)
+
   TESTING:
 
     * Remove selftest ``--clean-output``, ``--numbered-dirs`` and

=== modified file 'bzrlib/delta.py'
--- a/bzrlib/delta.py	2007-05-02 11:02:46 +0000
+++ b/bzrlib/delta.py	2007-07-28 22:45:28 +0000
@@ -217,7 +217,7 @@
 
 def _compare_trees(old_tree, new_tree, want_unchanged, specific_files,
                    include_root, extra_trees=None,
-                   want_unversioned=False):
+                   require_versioned=False, want_unversioned=False):
     """Worker function that implements Tree.changes_from."""
     delta = TreeDelta()
     # mutter('start compare_trees')
@@ -225,6 +225,7 @@
     for (file_id, path, content_change, versioned, parent_id, name, kind,
          executable) in new_tree._iter_changes(old_tree, want_unchanged,
             specific_files, extra_trees=extra_trees,
+            require_versioned=require_versioned,
             want_unversioned=want_unversioned):
         if versioned == (False, False):
             delta.unversioned.append((path[1], None, kind[1]))

=== modified file 'bzrlib/tests/test_tree.py'
--- a/bzrlib/tests/test_tree.py	2007-03-02 03:47:56 +0000
+++ b/bzrlib/tests/test_tree.py	2007-07-31 19:42:15 +0000
@@ -16,6 +16,7 @@
 
 """Tests for Tree and InterTree."""
 
+from bzrlib import errors
 from bzrlib.tests import TestCaseWithTransport
 from bzrlib.tree import InterTree
 
@@ -120,3 +121,20 @@
         delta = wt.changes_from(wt.basis_tree(), wt, include_root=True)
         self.assertEqual(len(delta.added), 1)
         self.assertEqual(delta.added[0][0], '')
+
+    def test_changes_from_with_require_versioned(self):
+        """Ensure the require_versioned option does what's expected."""
+        wt = self.make_branch_and_tree('.')
+        self.build_tree(['known_file', 'unknown_file'])
+        wt.add('known_file')
+
+        self.assertRaises(errors.PathsNotVersionedError,
+            wt.changes_from, wt.basis_tree(), wt, specific_files=['known_file',
+            'unknown_file'], require_versioned=True)
+
+        # we need to pass a known file with an unknown file to get this to
+        # fail when expected.
+        delta = wt.changes_from(wt.basis_tree(), wt, 
+            specific_files=['known_file', 'unknown_file'] ,
+            require_versioned=False)
+        self.assertEqual(len(delta.added), 1)

=== modified file 'bzrlib/tree.py'
--- a/bzrlib/tree.py	2007-07-19 15:44:17 +0000
+++ b/bzrlib/tree.py	2007-07-28 22:45:28 +0000
@@ -611,6 +611,7 @@
             return result
         return delta._compare_trees(self.source, self.target, want_unchanged,
             specific_files, include_root, extra_trees=extra_trees,
+            require_versioned=require_versioned,
             want_unversioned=want_unversioned)
 
     def _iter_changes(self, include_unchanged=False,




More information about the bazaar-commits mailing list