~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/repository.py

  • Committer: Patch Queue Manager
  • Date: 2011-10-09 13:52:06 UTC
  • mfrom: (6202.1.3 revno-revision)
  • Revision ID: pqm@pqm.ubuntu.com-20111009135206-t3utsln6mtzv9eut
(jelmer) Add a --revision argument to 'bzr revno'. (Jelmer Vernooij)

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
    gpg,
36
36
    )
37
37
from bzrlib.bundle import serializer
 
38
from bzrlib.i18n import gettext
38
39
""")
39
40
 
40
41
from bzrlib import (
280
281
                raise
281
282
            mutter('abort_write_group failed')
282
283
            log_exception_quietly()
283
 
            note('bzr: ERROR (ignored): %s', exc)
 
284
            note(gettext('bzr: ERROR (ignored): %s'), exc)
284
285
        self._write_group = None
285
286
 
286
287
    def _abort_write_group(self):
340
341
        """
341
342
        self.control_files.break_lock()
342
343
 
343
 
    @needs_read_lock
344
 
    def _eliminate_revisions_not_present(self, revision_ids):
345
 
        """Check every revision id in revision_ids to see if we have it.
346
 
 
347
 
        Returns a set of the present revisions.
348
 
        """
349
 
        result = []
350
 
        graph = self.get_graph()
351
 
        parent_map = graph.get_parent_map(revision_ids)
352
 
        # The old API returned a list, should this actually be a set?
353
 
        return parent_map.keys()
354
 
 
355
344
    @staticmethod
356
345
    def create(a_bzrdir):
357
346
        """Construct the current default format repository in a_bzrdir."""
372
361
        # the following are part of the public API for Repository:
373
362
        self.bzrdir = a_bzrdir
374
363
        self.control_files = control_files
375
 
        self._transport = control_files._transport
376
 
        self.base = self._transport.base
377
364
        # for tests
378
365
        self._write_group = None
379
366
        # Additional places to query for data.
417
404
        """
418
405
        if self.__class__ is not other.__class__:
419
406
            return False
420
 
        return (self._transport.base == other._transport.base)
 
407
        return (self.control_url == other.control_url)
421
408
 
422
409
    def is_in_write_group(self):
423
410
        """Return True if there is an open write group.
942
929
        parent_ids.discard(_mod_revision.NULL_REVISION)
943
930
        return parent_ids
944
931
 
945
 
    def fileids_altered_by_revision_ids(self, revision_ids):
946
 
        """Find the file ids and versions affected by revisions.
947
 
 
948
 
        :param revisions: an iterable containing revision ids.
949
 
        :return: a dictionary mapping altered file-ids to an iterable of
950
 
            revision_ids. Each altered file-ids has the exact revision_ids
951
 
            that altered it listed explicitly.
952
 
        """
953
 
        raise NotImplementedError(self.fileids_altered_by_revision_ids)
954
 
 
955
932
    def iter_files_bytes(self, desired_files):
956
933
        """Iterate through file versions.
957
934
 
1430
1407
    rich_root_data = None
1431
1408
    # Does this format support explicitly versioned directories?
1432
1409
    supports_versioned_directories = None
 
1410
    # Can other repositories be nested into one of this format?
 
1411
    supports_nesting_repositories = None
1433
1412
 
1434
1413
    def __repr__(self):
1435
1414
        return "%s()" % self.__class__.__name__
1561
1540
    supports_tree_reference = False
1562
1541
    supports_external_lookups = False
1563
1542
    supports_leaving_lock = True
 
1543
    supports_nesting_repositories = True
1564
1544
 
1565
1545
    @property
1566
1546
    def _matchingbzrdir(self):
1811
1791
        # trigger an assertion if not such
1812
1792
        repo._format.get_format_string()
1813
1793
        self.repo_dir = repo.bzrdir
1814
 
        pb.update('Moving repository to repository.backup')
 
1794
        pb.update(gettext('Moving repository to repository.backup'))
1815
1795
        self.repo_dir.transport.move('repository', 'repository.backup')
1816
1796
        backup_transport =  self.repo_dir.transport.clone('repository.backup')
1817
1797
        repo._format.check_conversion_target(self.target_format)
1818
1798
        self.source_repo = repo._format.open(self.repo_dir,
1819
1799
            _found=True,
1820
1800
            _override_transport=backup_transport)
1821
 
        pb.update('Creating new repository')
 
1801
        pb.update(gettext('Creating new repository'))
1822
1802
        converted = self.target_format.initialize(self.repo_dir,
1823
1803
                                                  self.source_repo.is_shared())
1824
1804
        converted.lock_write()
1825
1805
        try:
1826
 
            pb.update('Copying content')
 
1806
            pb.update(gettext('Copying content'))
1827
1807
            self.source_repo.copy_content_into(converted)
1828
1808
        finally:
1829
1809
            converted.unlock()
1830
 
        pb.update('Deleting old repository content')
 
1810
        pb.update(gettext('Deleting old repository content'))
1831
1811
        self.repo_dir.transport.delete_tree('repository.backup')
1832
 
        ui.ui_factory.note('repository converted')
 
1812
        ui.ui_factory.note(gettext('repository converted'))
1833
1813
        pb.finished()
1834
1814
 
1835
1815