~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commit.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:
341
341
                    del self.work_inv[file_id]
342
342
            self.branch._write_inventory(self.work_inv)
343
343
 
344
 
 
345
 
    def _find_entry_parents(self, file_id):
346
 
        """Return the text versions and hashes for all file parents.
347
 
 
348
 
        Returned as a map from text version to inventory entry.
349
 
 
350
 
        This is a map containing the file versions in all parents
351
 
        revisions containing the file.  If the file is new, the set
352
 
        will be empty."""
353
 
        r = {}
354
 
        for inv in self.parent_invs:
355
 
            if file_id in inv:
356
 
                ie = inv[file_id]
357
 
                assert ie.file_id == file_id
358
 
                if ie.revision in r:
359
 
                    assert r[ie.revision] == ie
360
 
                else:
361
 
                    r[ie.revision] = ie
362
 
        return r
363
 
 
364
344
    def _store_snapshot(self):
365
345
        """Pass over inventory and record a snapshot.
366
346
 
382
362
        # made a specific decision on a particular value -- c.f.
383
363
        # mark-merge.  
384
364
        for path, ie in self.new_inv.iter_entries():
385
 
            previous_entries = self._find_entry_parents(ie. file_id)
 
365
            previous_entries = ie.find_previous_heads(self.parent_invs)
386
366
            if ie.revision is None:
387
367
                change = ie.snapshot(self.rev_id, path, previous_entries,
388
368
                                     self.work_tree, self.weave_store)