Rev 3885: Bring in Inventory._make_delta in http://bzr.arbash-meinel.com/branches/bzr/1.11/differ_serializer
John Arbash Meinel
john at arbash-meinel.com
Fri Dec 5 22:18:13 GMT 2008
At http://bzr.arbash-meinel.com/branches/bzr/1.11/differ_serializer
------------------------------------------------------------
revno: 3885
revision-id: john at arbash-meinel.com-20081205221809-d3c4cz1jyv9p1y1h
parent: john at arbash-meinel.com-20081205172501-a0g7ho4sl29q6dz9
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: differ_serializer
timestamp: Fri 2008-12-05 16:18:09 -0600
message:
Bring in Inventory._make_delta
-------------- next part --------------
=== modified file 'bzrlib/inventory.py'
--- a/bzrlib/inventory.py 2008-08-09 00:45:30 +0000
+++ b/bzrlib/inventory.py 2008-12-05 22:18:09 +0000
@@ -1233,9 +1233,27 @@
def has_id(self, file_id):
return (file_id in self._byid)
+ def _make_delta(self, old):
+ """Make an inventory delta from two inventories."""
+ old_ids = set(old)
+ new_ids = set(self)
+ adds = new_ids - old_ids
+ deletes = old_ids - new_ids
+ common = old_ids.intersection(new_ids)
+ delta = []
+ for file_id in deletes:
+ delta.append((old.id2path(file_id), None, file_id, None))
+ for file_id in adds:
+ delta.append((None, self.id2path(file_id), file_id, self[file_id]))
+ for file_id in common:
+ if old[file_id] != self[file_id]:
+ delta.append((old.id2path(file_id), self.id2path(file_id),
+ file_id, self[file_id]))
+ return delta
+
def remove_recursive_id(self, file_id):
"""Remove file_id, and children, from the inventory.
-
+
:param file_id: A file_id to remove.
"""
to_find_delete = [self._byid[file_id]]
More information about the bazaar-commits
mailing list