/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/weave.py

  • Committer: Andrew Bennetts
  • Date: 2008-10-27 06:14:45 UTC
  • mfrom: (3793 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3795.
  • Revision ID: andrew.bennetts@canonical.com-20081027061445-eqt9lz6uw1mbvq4g
Merge from bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
71
71
from copy import copy
72
72
from cStringIO import StringIO
73
73
import os
74
 
import sha
75
74
import time
76
75
import warnings
77
76
 
 
77
from bzrlib.lazy_import import lazy_import
 
78
lazy_import(globals(), """
 
79
from bzrlib import tsort
 
80
""")
78
81
from bzrlib import (
79
82
    progress,
80
83
    )
86
89
        WeaveRevisionNotPresent,
87
90
        )
88
91
import bzrlib.errors as errors
89
 
from bzrlib.osutils import dirname, sha_strings, split_lines
 
92
from bzrlib.osutils import dirname, sha, sha_strings, split_lines
90
93
import bzrlib.patiencediff
91
94
from bzrlib.revision import NULL_REVISION
92
95
from bzrlib.symbol_versioning import *
93
96
from bzrlib.trace import mutter
94
 
from bzrlib.tsort import topo_sort
95
97
from bzrlib.versionedfile import (
96
98
    AbsentContentFactory,
97
99
    adapter_registry,
215
217
 
216
218
    __slots__ = ['_weave', '_parents', '_sha1s', '_names', '_name_map',
217
219
                 '_weave_name', '_matcher', '_allow_reserved']
218
 
    
 
220
 
219
221
    def __init__(self, weave_name=None, access_mode='w', matcher=None,
220
222
                 get_scope=None, allow_reserved=False):
221
223
        """Create a weave.
224
226
            for detecting when this weave goes out of scope (should stop
225
227
            answering requests or allowing mutation).
226
228
        """
227
 
        super(Weave, self).__init__(access_mode)
 
229
        super(Weave, self).__init__()
228
230
        self._weave = []
229
231
        self._parents = []
230
232
        self._sha1s = []
313
315
        versions = [version[-1] for version in versions]
314
316
        if ordering == 'topological':
315
317
            parents = self.get_parent_map(versions)
316
 
            new_versions = topo_sort(parents)
 
318
            new_versions = tsort.topo_sort(parents)
317
319
            new_versions.extend(set(versions).difference(set(parents)))
318
320
            versions = new_versions
319
321
        for version in versions:
799
801
            # For creating the ancestry, IntSet is much faster (3.7s vs 0.17s)
800
802
            # The problem is that set membership is much more expensive
801
803
            name = self._idx_to_name(i)
802
 
            sha1s[name] = sha.new()
 
804
            sha1s[name] = sha()
803
805
            texts[name] = []
804
806
            new_inc = set([name])
805
807
            for p in self._parents[i]:
995
997
    # map from version name -> all parent names
996
998
    combined_parents = _reweave_parent_graphs(wa, wb)
997
999
    mutter("combined parents: %r", combined_parents)
998
 
    order = topo_sort(combined_parents.iteritems())
 
1000
    order = tsort.topo_sort(combined_parents.iteritems())
999
1001
    mutter("order to reweave: %r", order)
1000
1002
 
1001
1003
    if pb and not msg: