At http://bzr.arbash-meinel.com/branches/bzr/1.11/differ_serializer

------------------------------------------------------------
revno: 3885
revision-id: [EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
committer: John Arbash Meinel <[EMAIL PROTECTED]>
branch nick: differ_serializer
timestamp: Fri 2008-12-05 16:18:09 -0600
message:
  Bring in Inventory._make_delta
=== 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]]

-- 
bazaar-commits mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/bazaar-commits

Reply via email to