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

Update to bzr.dev.

Show diffs side-by-side

added added

removed removed

Lines of Context:
456
456
        The result of trying to insert data into the repository via this store
457
457
        is undefined: it should be considered read-only except for implementors
458
458
        of repositories.
 
459
    :ivar _transport: Transport for file access to repository, typically
 
460
        pointing to .bzr/repository.
459
461
    """
460
462
 
461
463
    # What class to use for a CommitBuilder. Often its simpler to change this
623
625
        self.bzrdir = a_bzrdir
624
626
        self.control_files = control_files
625
627
        self._transport = control_files._transport
 
628
        self.base = self._transport.base
626
629
        # for tests
627
630
        self._reconcile_does_inventory_gc = True
628
631
        self._reconcile_fixes_text_parents = False
633
636
        # on whether escaping is required.
634
637
        self._warn_if_deprecated()
635
638
        self._write_group = None
636
 
        self.base = control_files._transport.base
637
639
 
638
640
    def __repr__(self):
639
641
        return '%s(%r)' % (self.__class__.__name__,
648
650
        """
649
651
        if self.__class__ is not other.__class__:
650
652
            return False
651
 
        return (self.control_files._transport.base ==
652
 
                other.control_files._transport.base)
 
653
        return (self._transport.base == other._transport.base)
653
654
 
654
655
    def is_in_write_group(self):
655
656
        """Return True if there is an open write group.
1657
1658
    def get_transaction(self):
1658
1659
        return self.control_files.get_transaction()
1659
1660
 
1660
 
    @deprecated_method(symbol_versioning.one_five)
1661
 
    def revision_parents(self, revision_id):
1662
 
        return self.get_revision(revision_id).parent_ids
1663
 
 
1664
1661
    @deprecated_method(symbol_versioning.one_one)
1665
1662
    def get_parents(self, revision_ids):
1666
1663
        """See StackedParentsProvider.get_parents"""
1671
1668
        """See graph._StackedParentsProvider.get_parent_map"""
1672
1669
        parent_map = {}
1673
1670
        for revision_id in keys:
 
1671
            if revision_id is None:
 
1672
                raise ValueError('get_parent_map(None) is not valid')
1674
1673
            if revision_id == _mod_revision.NULL_REVISION:
1675
1674
                parent_map[revision_id] = ()
1676
1675
            else:
1919
1918
 
1920
1919
 
1921
1920
class MetaDirRepository(Repository):
1922
 
    """Repositories in the new meta-dir layout."""
 
1921
    """Repositories in the new meta-dir layout.
 
1922
    
 
1923
    :ivar _transport: Transport for access to repository control files,
 
1924
        typically pointing to .bzr/repository.
 
1925
    """
1923
1926
 
1924
1927
    def __init__(self, _format, a_bzrdir, control_files):
1925
1928
        super(MetaDirRepository, self).__init__(_format, a_bzrdir, control_files)
1926
 
        dir_mode = self.control_files._dir_mode
1927
 
        file_mode = self.control_files._file_mode
 
1929
        self._transport = control_files._transport
1928
1930
 
1929
1931
    @needs_read_lock
1930
1932
    def is_shared(self):
1931
1933
        """Return True if this repository is flagged as a shared repository."""
1932
 
        return self.control_files._transport.has('shared-storage')
 
1934
        return self._transport.has('shared-storage')
1933
1935
 
1934
1936
    @needs_write_lock
1935
1937
    def set_make_working_trees(self, new_value):
1943
1945
        """
1944
1946
        if new_value:
1945
1947
            try:
1946
 
                self.control_files._transport.delete('no-working-trees')
 
1948
                self._transport.delete('no-working-trees')
1947
1949
            except errors.NoSuchFile:
1948
1950
                pass
1949
1951
        else:
1950
 
            self.control_files.put_utf8('no-working-trees', '')
 
1952
            self._transport.put_bytes('no-working-trees', '',
 
1953
                mode=self.bzrdir._get_file_mode())
1951
1954
    
1952
1955
    def make_working_trees(self):
1953
1956
        """Returns the policy for making working trees on new branches."""
1954
 
        return not self.control_files._transport.has('no-working-trees')
 
1957
        return not self._transport.has('no-working-trees')
1955
1958
 
1956
1959
 
1957
1960
class MetaDirVersionedFileRepository(MetaDirRepository):
2152
2155
        """Upload the initial blank content."""
2153
2156
        control_files = self._create_control_files(a_bzrdir)
2154
2157
        control_files.lock_write()
 
2158
        transport = control_files._transport
 
2159
        if shared == True:
 
2160
            utf8_files += [('shared-storage', '')]
2155
2161
        try:
2156
 
            control_files._transport.mkdir_multi(dirs,
2157
 
                    mode=control_files._dir_mode)
2158
 
            for file, content in files:
2159
 
                control_files.put(file, content)
2160
 
            for file, content in utf8_files:
2161
 
                control_files.put_utf8(file, content)
2162
 
            if shared == True:
2163
 
                control_files.put_utf8('shared-storage', '')
 
2162
            transport.mkdir_multi(dirs, mode=a_bzrdir._get_dir_mode())
 
2163
            for (filename, content_stream) in files:
 
2164
                transport.put_file(filename, content_stream,
 
2165
                    mode=a_bzrdir._get_file_mode())
 
2166
            for (filename, content_bytes) in utf8_files:
 
2167
                transport.put_bytes_non_atomic(filename, content_bytes,
 
2168
                    mode=a_bzrdir._get_file_mode())
2164
2169
        finally:
2165
2170
            control_files.unlock()
2166
2171
 
2450
2455
        except (errors.RepositoryUpgradeRequired, NotImplemented):
2451
2456
            pass
2452
2457
        # FIXME do not peek!
2453
 
        if self.source.control_files._transport.listable():
 
2458
        if self.source._transport.listable():
2454
2459
            pb = ui.ui_factory.nested_progress_bar()
2455
2460
            try:
2456
2461
                self.target.texts.insert_record_stream(