~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/knit.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-10-31 22:18:23 UTC
  • mfrom: (2104.4.2 wang_65714)
  • Revision ID: pqm@pqm.ubuntu.com-20061031221823-64fb0443861befd1
(Cheuksan Edward Wang) Fix bug #65714 by switching to patience diff (O(N^2) instead of O(N^3) for difflib)

Show diffs side-by-side

added added

removed removed

Lines of Context:
77
77
from bzrlib import (
78
78
    cache_utf8,
79
79
    errors,
 
80
    patiencediff,
80
81
    progress,
81
82
    )
82
83
from bzrlib.errors import FileExists, NoSuchFile, KnitError, \
522
523
            delta_seq = None
523
524
            for parent_id in parents:
524
525
                merge_content = self._get_content(parent_id, parent_texts)
525
 
                seq = KnitSequenceMatcher(None, merge_content.text(), content.text())
 
526
                seq = patiencediff.PatienceSequenceMatcher(
 
527
                                   None, merge_content.text(), content.text())
526
528
                if delta_seq is None:
527
529
                    # setup a delta seq to reuse.
528
530
                    delta_seq = seq
539
541
                reference_content = self._get_content(parents[0], parent_texts)
540
542
                new_texts = content.text()
541
543
                old_texts = reference_content.text()
542
 
                delta_seq = KnitSequenceMatcher(None, old_texts, new_texts)
 
544
                delta_seq = patiencediff.PatienceSequenceMatcher(
 
545
                                                 None, old_texts, new_texts)
543
546
            return self._make_line_delta(delta_seq, content)
544
547
 
545
548
    def _make_line_delta(self, delta_seq, new_content):