/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/versionedfile.py

  • Committer: Robert Collins
  • Date: 2008-04-08 02:31:32 UTC
  • mto: This revision was merged to the branch mainline in revision 3350.
  • Revision ID: robertc@robertcollins.net-20080408023132-krhhq7sn52hff1tc
 * ``VersionedFile.iter_parents`` is now deprecated in favour of
   ``get_parent_map`` which can be used to instantiate a Graph on a
   VersionedFile. (Robert Collins)

Show diffs side-by-side

added added

removed removed

Lines of Context:
348
348
                            None means retrieve all versions.
349
349
        """
350
350
        if version_ids is None:
351
 
            return dict(self.iter_parents(self.versions()))
352
 
        result = {}
353
 
        pending = set(version_ids)
354
 
        while pending:
355
 
            this_iteration = pending
356
 
            pending = set()
357
 
            for version, parents in self.iter_parents(this_iteration):
358
 
                result[version] = parents
359
 
                for parent in parents:
360
 
                    if parent in result:
361
 
                        continue
362
 
                    pending.add(parent)
 
351
            result = self.get_parent_map(self.versions())
 
352
        else:
 
353
            result = {}
 
354
            pending = set(version_ids)
 
355
            while pending:
 
356
                this_iteration = pending
 
357
                pending = set()
 
358
                parents = self.get_parent_map(this_iteration)
 
359
                for version, parents in parents.iteritems():
 
360
                    result[version] = parents
 
361
                    for parent in parents:
 
362
                        if parent in result:
 
363
                            continue
 
364
                        pending.add(parent)
 
365
        references = set()
 
366
        for parents in result.itervalues():
 
367
            references.update(parents)
 
368
        existing_parents = self.get_parent_map(references)
 
369
        for key, parents in result.iteritems():
 
370
            present_parents = [parent for parent in parents if parent in
 
371
                existing_parents]
 
372
            result[key] = tuple(present_parents)
363
373
        return result
364
374
 
365
375
    @deprecated_method(one_four)
463
473
        """
464
474
        raise NotImplementedError(self.iter_lines_added_or_present_in_versions)
465
475
 
 
476
    @deprecated_method(one_four)
466
477
    def iter_parents(self, version_ids):
467
478
        """Iterate through the parents for many version ids.
468
479