~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/inventory.py

  • Committer: Robert Collins
  • Date: 2005-10-06 01:43:48 UTC
  • Revision ID: robertc@robertcollins.net-20051006014347-05deb4af2cc259a0
unify previous inventory entry parent logic in preparation for fixing the revision-thrashing bug

Show diffs side-by-side

added added

removed removed

Lines of Context:
146
146
             output_to, reverse=False):
147
147
        """Perform a diff between two entries of the same kind."""
148
148
 
 
149
    def find_previous_heads(self, previous_inventories):
 
150
        """Return the revisions and entries that directly preceed this.
 
151
 
 
152
        Returned as a map from revision to inventory entry.
 
153
 
 
154
        This is a map containing the file revisions in all parents
 
155
        for which the file exists, and its revision is not a parent of
 
156
        any other. If the file is new, the set will be empty.
 
157
        """
 
158
        heads = {}
 
159
        for inv in previous_inventories:
 
160
            if self.file_id in inv:
 
161
                ie = inv[self.file_id]
 
162
                assert ie.file_id == self.file_id
 
163
                if ie.revision in heads:
 
164
                    assert heads[ie.revision] == ie
 
165
                else:
 
166
                    heads[ie.revision] = ie
 
167
        return heads
 
168
 
149
169
    def get_tar_item(self, root, dp, now, tree):
150
170
        """Get a tarfile item and a file stream for its content."""
151
171
        item = tarfile.TarInfo(os.path.join(root, dp))