~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repository.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2006-04-07 02:16:15 UTC
  • mfrom: (1641.1.1 integration)
  • Revision ID: pqm@pqm.ubuntu.com-20060407021615-d84ad7bd595139f1
Merge knit performance improvements.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
import bzrlib.gpg as gpg
26
26
from bzrlib.graph import Graph
27
27
from bzrlib.inter import InterObject
28
 
from bzrlib.knit import KnitVersionedFile
 
28
from bzrlib.knit import KnitVersionedFile, KnitPlainFactory
29
29
from bzrlib.lockable_files import LockableFiles, TransportLock
30
30
from bzrlib.lockdir import LockDir
31
31
from bzrlib.osutils import safe_unicode
769
769
        """
770
770
        result = Graph()
771
771
        vf = self._get_revision_vf()
772
 
        versions = vf.versions()
 
772
        versions = set(vf.versions())
773
773
        if not revision_ids:
774
774
            pending = set(self.all_revision_ids())
775
775
            required = set([])
784
784
                    raise errors.NoSuchRevision(self, revision_id)
785
785
                # a ghost
786
786
                result.add_ghost(revision_id)
 
787
                # mark it as done so we dont try for it again.
 
788
                done.add(revision_id)
787
789
                continue
788
790
            parent_ids = vf.get_parents_with_ghosts(revision_id)
789
791
            for parent_id in parent_ids:
793
795
                    # no, queue it.
794
796
                    pending.add(parent_id)
795
797
            result.add_node(revision_id, parent_ids)
796
 
            done.add(result)
 
798
            done.add(revision_id)
797
799
        return result
798
800
 
799
801
    def _get_revision_vf(self):
1261
1263
 
1262
1264
    def _get_control_store(self, repo_transport, control_files):
1263
1265
        """Return the control store for this repository."""
1264
 
        return self._get_versioned_file_store('',
1265
 
                                              repo_transport,
1266
 
                                              control_files,
1267
 
                                              prefixed=False,
1268
 
                                              versionedfile_class=KnitVersionedFile)
 
1266
        return VersionedFileStore(
 
1267
            repo_transport,
 
1268
            prefixed=False,
 
1269
            file_mode=control_files._file_mode,
 
1270
            versionedfile_class=KnitVersionedFile,
 
1271
            versionedfile_kwargs={'factory':KnitPlainFactory()},
 
1272
            )
1269
1273
 
1270
1274
    def get_format_string(self):
1271
1275
        """See RepositoryFormat.get_format_string()."""
1279
1283
            file_mode = control_files._file_mode,
1280
1284
            prefixed=False,
1281
1285
            precious=True,
1282
 
            versionedfile_class=KnitVersionedFile)
 
1286
            versionedfile_class=KnitVersionedFile,
 
1287
            versionedfile_kwargs={'delta':False, 'factory':KnitPlainFactory()})
1283
1288
        return KnitRevisionStore(versioned_file_store)
1284
1289
 
1285
1290
    def _get_text_store(self, transport, control_files):