Rev 2469: Fix cmd_renames to lock around inventory access. in http://bazaar.launchpad.net/~bzr/bzr/dirstate
Robert Collins
robertc at robertcollins.net
Thu Mar 1 06:51:51 GMT 2007
At http://bazaar.launchpad.net/~bzr/bzr/dirstate
------------------------------------------------------------
revno: 2469
revision-id: robertc at robertcollins.net-20070301065052-d08k4x37bchwo48e
parent: robertc at robertcollins.net-20070301061944-y1jw05ufqdpw4yx5
committer: Robert Collins <robertc at robertcollins.net>
branch nick: dirstate
timestamp: Thu 2007-03-01 17:50:52 +1100
message:
Fix cmd_renames to lock around inventory access.
modified:
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2007-03-01 02:35:47 +0000
+++ b/bzrlib/builtins.py 2007-03-01 06:50:52 +0000
@@ -977,12 +977,21 @@
@display_command
def run(self, dir=u'.'):
tree = WorkingTree.open_containing(dir)[0]
- old_inv = tree.basis_tree().inventory
- new_inv = tree.read_working_inventory()
- renames = list(_mod_tree.find_renames(old_inv, new_inv))
- renames.sort()
- for old_name, new_name in renames:
- self.outf.write("%s => %s\n" % (old_name, new_name))
+ tree.lock_read()
+ try:
+ new_inv = tree.inventory
+ old_tree = tree.basis_tree()
+ old_tree.lock_read()
+ try:
+ old_inv = old_tree.inventory
+ renames = list(_mod_tree.find_renames(old_inv, new_inv))
+ renames.sort()
+ for old_name, new_name in renames:
+ self.outf.write("%s => %s\n" % (old_name, new_name))
+ finally:
+ old_tree.unlock()
+ finally:
+ tree.unlock()
class cmd_update(Command):
More information about the bazaar-commits
mailing list