~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repository.py

  • Committer: Martin Pool
  • Date: 2006-06-20 05:32:16 UTC
  • mfrom: (1797 +trunk)
  • mto: This revision was merged to the branch mainline in revision 1798.
  • Revision ID: mbp@sourcefrog.net-20060620053216-817857d7ca3e9d1f
[merge] bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
import time
22
22
from unittest import TestSuite
23
23
 
24
 
from bzrlib import bzrdir, check, gpg, errors, xml5, ui, transactions, osutils
 
24
from bzrlib import bzrdir, check, delta, gpg, errors, xml5, ui, transactions, osutils
25
25
from bzrlib.decorators import needs_read_lock, needs_write_lock
26
26
from bzrlib.errors import InvalidRevisionId
27
27
from bzrlib.graph import Graph
39
39
        zero_nine, 
40
40
        )
41
41
from bzrlib.trace import mutter, note
42
 
from bzrlib.tree import RevisionTree
 
42
from bzrlib.tree import RevisionTree, EmptyTree
43
43
from bzrlib.tsort import topo_sort
44
44
from bzrlib.testament import Testament
45
45
from bzrlib.tree import EmptyTree
300
300
        """
301
301
        if not revision_id or not isinstance(revision_id, basestring):
302
302
            raise InvalidRevisionId(revision_id=revision_id, branch=self)
303
 
        return self._revision_store.get_revision(revision_id,
304
 
                                                 self.get_transaction())
 
303
        return self._revision_store.get_revisions([revision_id],
 
304
                                                  self.get_transaction())[0]
 
305
    @needs_read_lock
 
306
    def get_revisions(self, revision_ids):
 
307
        return self._revision_store.get_revisions(revision_ids,
 
308
                                                  self.get_transaction())
305
309
 
306
310
    @needs_read_lock
307
311
    def get_revision_xml(self, revision_id):
327
331
        self._check_revision_parents(r, inv)
328
332
        return r
329
333
 
 
334
    def get_revision_delta(self, revision_id):
 
335
        """Return the delta for one revision.
 
336
 
 
337
        The delta is relative to the left-hand predecessor of the
 
338
        revision.
 
339
        """
 
340
        revision = self.get_revision(revision_id)
 
341
        new_tree = self.revision_tree(revision_id)
 
342
        if not revision.parent_ids:
 
343
            old_tree = EmptyTree()
 
344
        else:
 
345
            old_tree = self.revision_tree(revision.parent_ids[0])
 
346
        return delta.compare_trees(old_tree, new_tree)
 
347
 
330
348
    def _check_revision_parents(self, revision, inventory):
331
349
        """Private to Repository and Fetch.
332
350
        
942
960
        except errors.NoSuchFile:
943
961
            raise errors.NoRepositoryPresent(a_bzrdir)
944
962
        except KeyError:
945
 
            raise errors.UnknownFormatError(format_string)
 
963
            raise errors.UnknownFormatError(format=format_string)
946
964
 
947
965
    def _get_control_store(self, repo_transport, control_files):
948
966
        """Return the control store for this repository."""