Rev 3368: Test absent record emission more stringently. in http://people.ubuntu.com/~robertc/baz2.0/versioned_files

Robert Collins robertc at robertcollins.net
Wed Apr 30 05:13:56 BST 2008


At http://people.ubuntu.com/~robertc/baz2.0/versioned_files

------------------------------------------------------------
revno: 3368
revision-id: robertc at robertcollins.net-20080430041351-14fg6mvv6581lsjb
parent: robertc at robertcollins.net-20080430025031-3e4hnirlk03cmq4h
committer: Robert Collins <robertc at robertcollins.net>
branch nick: data_stream_revamp
timestamp: Wed 2008-04-30 14:13:51 +1000
message:
  Test absent record emission more stringently.
modified:
  bzrlib/tests/test_versionedfile.py test_versionedfile.py-20060222045249-db45c9ed14a1c2e5
  bzrlib/weave.py                knit.py-20050627021749-759c29984154256b
=== modified file 'bzrlib/tests/test_versionedfile.py'
--- a/bzrlib/tests/test_versionedfile.py	2008-04-30 02:50:31 +0000
+++ b/bzrlib/tests/test_versionedfile.py	2008-04-30 04:13:51 +0000
@@ -210,6 +210,13 @@
         f, parents = get_diamond_vf(self.get_file())
         entries = f.get_record_stream(['merged', 'left', 'right', 'or', 'base'],
             'unordered', False)
+        self.assertAbsentRecord(f, parents, entries)
+        entries = f.get_record_stream(['merged', 'left', 'right', 'or', 'base'],
+            'topological', False)
+        self.assertAbsentRecord(f, parents, entries)
+
+    def assertAbsentRecord(self, f, parents, entries):
+        """Helper for test_get_record_stream_missing_records_are_absent."""
         seen = set()
         for factory in entries:
             seen.add(factory.key)

=== modified file 'bzrlib/weave.py'
--- a/bzrlib/weave.py	2008-04-29 23:08:36 +0000
+++ b/bzrlib/weave.py	2008-04-30 04:13:51 +0000
@@ -308,7 +308,9 @@
         """
         if ordering == 'topological':
             parents = self.get_parent_map(versions)
-            versions = topo_sort(parents)
+            new_versions = topo_sort(parents)
+            new_versions.extend(set(versions).difference(set(parents)))
+            versions = new_versions
         for version in versions:
             if version in self:
                 yield WeaveContentFactory(version, self)




More information about the bazaar-commits mailing list