Rev 2307: Add function for checking inventory delta. in http://people.samba.org/bzr/jelmer/bzr-svn/0.5
Jelmer Vernooij
jelmer at samba.org
Thu Jan 15 00:57:33 GMT 2009
At http://people.samba.org/bzr/jelmer/bzr-svn/0.5
------------------------------------------------------------
revno: 2307
revision-id: jelmer at samba.org-20090115005729-3jztitj8q73xp82g
parent: jelmer at samba.org-20090114195218-qgzovcmlqmxq85ju
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: 0.5
timestamp: Thu 2009-01-15 01:57:29 +0100
message:
Add function for checking inventory delta.
modified:
fetch.py fetch.py-20060625004942-x2lfaib8ra707a8p-1
=== modified file 'fetch.py'
--- a/fetch.py 2008-12-16 01:26:33 +0000
+++ b/fetch.py 2009-01-15 00:57:29 +0000
@@ -43,6 +43,27 @@
FETCH_COMMIT_WRITE_SIZE = 500
+
+def check_inventory_delta(delta):
+ """Check the internal consistency of an inventory delta.
+
+ :param delta: An inventory delta
+ """
+ old_paths = set()
+ new_paths = set()
+ file_ids = set()
+ for (old_path, new_path, file_id, ie) in delta:
+ if old_path is not None and old_path in old_paths:
+ raise AssertionError("new path %s exists more than once" % old_path)
+ if new_path is not None and new_path in new_paths:
+ raise AssertionError("old path %s exists more than once" % new_path)
+ if file_id in file_ids:
+ raise AssertionError("file id %s exists more than once" % file_id)
+ old_paths.add(old_path)
+ new_paths.add(new_path)
+ file_ids.add(file_id)
+
+
def md5_strings(strings):
"""Return the MD5sum of the concatenation of strings.
@@ -508,6 +529,8 @@
[r for r in rev.parent_ids if self.target.has_revision(r)])
else:
self.inventory = self.old_inventory
+ if "check" in debug.debug_flags:
+ check_inventory_delta(self._inv_delta)
self.inventory.apply_delta(self._inv_delta)
self.inventory.revision_id = rev.revision_id
More information about the bazaar-commits
mailing list