/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/repofmt/pack_repo.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-01-14 00:01:32 UTC
  • mfrom: (4957.1.1 jam-integration)
  • Revision ID: pqm@pqm.ubuntu.com-20100114000132-3p3rabnonjw3gzqb
(jam) Merge bzr.stable, bringing in bug fixes #175839, #504390

Show diffs side-by-side

added added

removed removed

Lines of Context:
54
54
    revision as _mod_revision,
55
55
    )
56
56
 
57
 
from bzrlib.decorators import needs_write_lock
 
57
from bzrlib.decorators import needs_write_lock, only_raises
58
58
from bzrlib.btree_index import (
59
59
    BTreeGraphIndex,
60
60
    BTreeBuilder,
73
73
    )
74
74
from bzrlib.trace import (
75
75
    mutter,
 
76
    note,
76
77
    warning,
77
78
    )
78
79
 
1116
1117
            iterator is a tuple with:
1117
1118
            index, readv_vector, node_vector. readv_vector is a list ready to
1118
1119
            hand to the transport readv method, and node_vector is a list of
1119
 
            (key, eol_flag, references) for the the node retrieved by the
 
1120
            (key, eol_flag, references) for the node retrieved by the
1120
1121
            matching readv_vector.
1121
1122
        """
1122
1123
        # group by pack so we do one readv per pack
1422
1423
        # resumed packs
1423
1424
        self._resumed_packs = []
1424
1425
 
 
1426
    def __repr__(self):
 
1427
        return '%s(%r)' % (self.__class__.__name__, self.repo)
 
1428
 
1425
1429
    def add_pack_to_memory(self, pack):
1426
1430
        """Make a Pack object available to the repository to satisfy queries.
1427
1431
 
2233
2237
        self._reconcile_fixes_text_parents = True
2234
2238
        self._reconcile_backsup_inventory = False
2235
2239
 
2236
 
    def _warn_if_deprecated(self):
 
2240
    def _warn_if_deprecated(self, branch=None):
2237
2241
        # This class isn't deprecated, but one sub-format is
2238
2242
        if isinstance(self._format, RepositoryFormatKnitPack5RichRootBroken):
2239
 
            from bzrlib import repository
2240
 
            if repository._deprecation_warning_done:
2241
 
                return
2242
 
            repository._deprecation_warning_done = True
2243
 
            warning("Format %s for %s is deprecated - please use"
2244
 
                    " 'bzr upgrade --1.6.1-rich-root'"
2245
 
                    % (self._format, self.bzrdir.transport.base))
 
2243
            super(KnitPackRepository, self)._warn_if_deprecated(branch)
2246
2244
 
2247
2245
    def _abort_write_group(self):
2248
2246
        self.revisions._index._key_dependencies.clear()
2306
2304
        if self._write_lock_count == 1:
2307
2305
            self._transaction = transactions.WriteTransaction()
2308
2306
        if not locked:
 
2307
            if 'relock' in debug.debug_flags and self._prev_lock == 'w':
 
2308
                note('%r was write locked again', self)
 
2309
            self._prev_lock = 'w'
2309
2310
            for repo in self._fallback_repositories:
2310
2311
                # Writes don't affect fallback repos
2311
2312
                repo.lock_read()
2318
2319
        else:
2319
2320
            self.control_files.lock_read()
2320
2321
        if not locked:
 
2322
            if 'relock' in debug.debug_flags and self._prev_lock == 'r':
 
2323
                note('%r was read locked again', self)
 
2324
            self._prev_lock = 'r'
2321
2325
            for repo in self._fallback_repositories:
2322
2326
                repo.lock_read()
2323
2327
            self._refresh_data()
2351
2355
        packer = ReconcilePacker(collection, packs, extension, revs)
2352
2356
        return packer.pack(pb)
2353
2357
 
 
2358
    @only_raises(errors.LockNotHeld, errors.LockBroken)
2354
2359
    def unlock(self):
2355
2360
        if self._write_lock_count == 1 and self._write_group is not None:
2356
2361
            self.abort_write_group()