~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/versionedfile.py

  • Committer: Robert Collins
  • Date: 2008-01-03 21:02:06 UTC
  • mfrom: (3162 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3163.
  • Revision ID: robertc@robertcollins.net-20080103210206-eqvta89m37jgjjfi
Resolve conflicts with bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
519
519
 
520
520
    def plan_merge(self, ver_a, ver_b, base=None):
521
521
        """See VersionedFile.plan_merge"""
522
 
        from merge import _PlanMerge
 
522
        from bzrlib.merge import _PlanMerge
523
523
        if base is None:
524
524
            return _PlanMerge(ver_a, ver_b, self).plan_merge()
525
525
        old_plan = list(_PlanMerge(ver_a, base, self).plan_merge())
526
526
        new_plan = list(_PlanMerge(ver_a, ver_b, self).plan_merge())
527
527
        return _PlanMerge._subtract_plans(old_plan, new_plan)
528
528
 
 
529
    def plan_lca_merge(self, ver_a, ver_b, base=None):
 
530
        from bzrlib.merge import _PlanLCAMerge
 
531
        graph = self._get_graph()
 
532
        new_plan = _PlanLCAMerge(ver_a, ver_b, self, graph).plan_merge()
 
533
        if base is None:
 
534
            return new_plan
 
535
        old_plan = _PlanLCAMerge(ver_a, base, self, graph).plan_merge()
 
536
        return _PlanLCAMerge._subtract_plans(list(old_plan), list(new_plan))
529
537
 
530
538
    def add_lines(self, version_id, parents, lines):
531
539
        """See VersionedFile.add_lines
595
603
        else:
596
604
            raise errors.RevisionNotPresent(version_id, self._file_id)
597
605
 
 
606
    def _get_graph(self):
 
607
        from bzrlib.graph import (
 
608
            DictParentsProvider,
 
609
            Graph,
 
610
            _StackedParentsProvider,
 
611
            )
 
612
        from bzrlib.repofmt.knitrepo import _KnitParentsProvider
 
613
        parent_providers = [DictParentsProvider(self._parents)]
 
614
        for vf in self.fallback_versionedfiles:
 
615
            parent_providers.append(_KnitParentsProvider(vf))
 
616
        return Graph(_StackedParentsProvider(parent_providers))
 
617
 
598
618
 
599
619
class PlanWeaveMerge(TextMerge):
600
620
    """Weave merge that takes a plan as its input.
653
673
            elif state == 'new-b':
654
674
                ch_b = True
655
675
                lines_b.append(line)
 
676
            elif state == 'conflicted-a':
 
677
                ch_b = ch_a = True
 
678
                lines_a.append(line)
 
679
            elif state == 'conflicted-b':
 
680
                ch_b = ch_a = True
 
681
                lines_b.append(line)
656
682
            else:
657
683
                assert state in ('irrelevant', 'ghost-a', 'ghost-b', 
658
684
                                 'killed-base', 'killed-both'), state