Rev 5914: Simplify and unlock on errors. in file:///home/vila/src/bzr/reviews/mv_after_with_dest_added/
Vincent Ladeuil
v.ladeuil+lp at free.fr
Tue Jun 7 16:31:07 UTC 2011
At file:///home/vila/src/bzr/reviews/mv_after_with_dest_added/
------------------------------------------------------------
revno: 5914
revision-id: v.ladeuil+lp at free.fr-20110607163107-115aj60wew4lei10
parent: benoit.pierre at gmail.com-20110524212751-3er1p2f3mlqg2i0g
committer: Vincent Ladeuil <v.ladeuil+lp at free.fr>
branch nick: mv_after_with_dest_added
timestamp: Tue 2011-06-07 18:31:07 +0200
message:
Simplify and unlock on errors.
-------------- next part --------------
=== modified file 'bzrlib/workingtree.py'
--- a/bzrlib/workingtree.py 2011-05-24 21:27:51 +0000
+++ b/bzrlib/workingtree.py 2011-06-07 16:31:07 +0000
@@ -2728,7 +2728,7 @@
class _RenameEntry(object):
def __init__(self, from_rel, from_id, from_tail, from_parent_id,
to_rel, to_tail, to_parent_id, only_change_inv=False,
- change_id=False):
+ to_id=None):
self.from_rel = from_rel
self.from_id = from_id
self.from_tail = from_tail
@@ -2736,7 +2736,7 @@
self.to_rel = to_rel
self.to_tail = to_tail
self.to_parent_id = to_parent_id
- self.change_id = change_id
+ self.to_id = to_id
self.only_change_inv = only_change_inv
def _determine_mv_mode(self, rename_entries, after=False):
@@ -2762,15 +2762,16 @@
errors.NotVersionedError(path=from_rel))
if to_id is not None:
allowed = False
- # allow it with after but only if dest is newly added
+ # allow it with --after but only if dest is newly added
if after:
basis = self.basis_tree()
basis.lock_read()
- added = not basis.inventory.has_id(to_id)
- basis.unlock()
- if added:
- change_id = True
- allowed = True
+ try:
+ if not basis.has_id(to_id):
+ rename_entry.to_id = to_id
+ allowed = True
+ finally:
+ basis.unlock()
if not allowed:
raise errors.BzrMoveFailedError(from_rel,to_rel,
errors.AlreadyVersionedError(path=to_rel))
@@ -2801,7 +2802,6 @@
else:
raise errors.RenameFailedFilesExist(from_rel, to_rel)
rename_entry.only_change_inv = only_change_inv
- rename_entry.change_id = change_id
return rename_entries
def _move(self, rename_entries):
More information about the bazaar-commits
mailing list