~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/transform.py

  • Committer: Alexander Belchenko
  • Date: 2008-02-06 10:07:17 UTC
  • mfrom: (3211 +trunk)
  • mto: This revision was merged to the branch mainline in revision 3230.
  • Revision ID: bialix@ukr.net-20080206100717-wnixj1s8u2fks08r
merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
81
81
        object.__init__(self)
82
82
        self._tree = tree
83
83
        self._limbodir = limbodir
 
84
        self._deletiondir = None
84
85
        self._id_number = 0
85
86
        # mapping of trans_id -> new basename
86
87
        self._new_name = {}
158
159
                # We don't especially care *why* the dir is immortal.
159
160
                raise ImmortalLimbo(self._limbodir)
160
161
            try:
161
 
                os.rmdir(self._deletiondir)
 
162
                if self._deletiondir is not None:
 
163
                    os.rmdir(self._deletiondir)
162
164
            except OSError:
163
165
                raise errors.ImmortalPendingDeletion(self._deletiondir)
164
166
        finally:
1136
1138
            except OSError, e:
1137
1139
                if e.errno == errno.EEXIST:
1138
1140
                    raise ExistingLimbo(limbodir)
1139
 
            self._deletiondir = urlutils.local_path_from_url(
 
1141
            deletiondir = urlutils.local_path_from_url(
1140
1142
                control_files.controlfilename('pending-deletion'))
1141
1143
            try:
1142
 
                os.mkdir(self._deletiondir)
 
1144
                os.mkdir(deletiondir)
1143
1145
            except OSError, e:
1144
1146
                if e.errno == errno.EEXIST:
1145
 
                    raise errors.ExistingPendingDeletion(self._deletiondir)
 
1147
                    raise errors.ExistingPendingDeletion(deletiondir)
1146
1148
        except:
1147
1149
            tree.unlock()
1148
1150
            raise
1149
1151
 
1150
1152
        TreeTransformBase.__init__(self, tree, limbodir, pb,
1151
1153
                                   tree.case_sensitive)
 
1154
        self._deletiondir = deletiondir
1152
1155
 
1153
1156
    def apply(self, no_conflicts=False, _mover=None):
1154
1157
        """Apply all changes to the inventory and filesystem.
1321
1324
    """
1322
1325
 
1323
1326
    def __init__(self, tree, pb=DummyProgress(), case_sensitive=True):
1324
 
        limbodir = tempfile.mkdtemp()
 
1327
        tree.lock_read()
 
1328
        limbodir = tempfile.mkdtemp(prefix='bzr-limbo-')
1325
1329
        TreeTransformBase.__init__(self, tree, limbodir, pb, case_sensitive)
1326
1330
 
1327
1331
    def canonical_path(self, path):