~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/memorytree.py

  • Committer: Robert Collins
  • Date: 2006-09-15 02:03:15 UTC
  • mto: (2017.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 2018.
  • Revision ID: robertc@robertcollins.net-20060915020315-9a4b022a6db42940
Update to bzr.dev, which involves adding lock_tree_write to MutableTree and MemoryTree.

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
from bzrlib import errors, mutabletree
26
26
from bzrlib.decorators import needs_read_lock, needs_write_lock
27
27
from bzrlib.osutils import sha_file
 
28
from bzrlib.mutabletree import needs_tree_write_lock
28
29
from bzrlib.transport.memory import MemoryTransport
29
30
 
30
31
 
44
45
        self._locks = 0
45
46
        self._lock_mode = None
46
47
 
47
 
    @needs_write_lock
 
48
    @needs_tree_write_lock
48
49
    def _add(self, files, ids, kinds):
49
50
        """See MutableTree._add."""
50
51
        for f, file_id, kind in zip(files, ids, kinds):
126
127
            self._locks -= 1
127
128
            raise
128
129
 
 
130
    def lock_tree_write(self):
 
131
        """See MutableTree.lock_tree_write()."""
 
132
        self._locks += 1
 
133
        try:
 
134
            if self._locks == 1:
 
135
                self.branch.lock_read()
 
136
                self._lock_mode = "w"
 
137
                self._populate_from_branch()
 
138
            elif self._lock_mode == "r":
 
139
                raise errors.ReadOnlyError(self)
 
140
        except:
 
141
            self._locks -= 1
 
142
            raise
 
143
 
129
144
    def lock_write(self):
130
145
        """See MutableTree.lock_write()."""
131
146
        self._locks += 1
184
199
        else:
185
200
            self._locks -= 1
186
201
 
187
 
    @needs_write_lock
 
202
    @needs_tree_write_lock
188
203
    def unversion(self, file_ids):
189
204
        """Remove the file ids in file_ids from the current versioned set.
190
205