/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: John Arbash Meinel
  • Date: 2009-12-10 17:16:19 UTC
  • mfrom: (4884 +trunk)
  • mto: This revision was merged to the branch mainline in revision 4889.
  • Revision ID: john@arbash-meinel.com-20091210171619-ehdcxjbl8afhq9g1
Bring in bzr.dev 4884

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
2306
2307
        if self._write_lock_count == 1:
2307
2308
            self._transaction = transactions.WriteTransaction()
2308
2309
        if not locked:
 
2310
            if 'relock' in debug.debug_flags and self._prev_lock == 'w':
 
2311
                note('%r was write locked again', self)
 
2312
            self._prev_lock = 'w'
2309
2313
            for repo in self._fallback_repositories:
2310
2314
                # Writes don't affect fallback repos
2311
2315
                repo.lock_read()
2318
2322
        else:
2319
2323
            self.control_files.lock_read()
2320
2324
        if not locked:
 
2325
            if 'relock' in debug.debug_flags and self._prev_lock == 'r':
 
2326
                note('%r was read locked again', self)
 
2327
            self._prev_lock = 'r'
2321
2328
            for repo in self._fallback_repositories:
2322
2329
                repo.lock_read()
2323
2330
            self._refresh_data()
2351
2358
        packer = ReconcilePacker(collection, packs, extension, revs)
2352
2359
        return packer.pack(pb)
2353
2360
 
 
2361
    @only_raises(errors.LockNotHeld, errors.LockBroken)
2354
2362
    def unlock(self):
2355
2363
        if self._write_lock_count == 1 and self._write_group is not None:
2356
2364
            self.abort_write_group()