Rev 2475: Fix all blackbox add tests, and the add --from-ids case in the UI. in http://bazaar.launchpad.net/~bzr/bzr/dirstate
Robert Collins
robertc at robertcollins.net
Thu Mar 1 08:45:25 GMT 2007
At http://bazaar.launchpad.net/~bzr/bzr/dirstate
------------------------------------------------------------
revno: 2475
revision-id: robertc at robertcollins.net-20070301084414-h302pw7vt7wllqb6
parent: mbp at sourcefrog.net-20070301083325-e87nhnnpx3i18nea
committer: Robert Collins <robertc at robertcollins.net>
branch nick: dirstate
timestamp: Thu 2007-03-01 19:44:14 +1100
message:
Fix all blackbox add tests, and the add --from-ids case in the UI.
modified:
bzrlib/builtins.py builtins.py-20050830033751-fc01482b9ca23183
bzrlib/tests/blackbox/test_add.py test_add.py-20060518072250-857e4f86f54a30b2
=== modified file 'bzrlib/builtins.py'
--- a/bzrlib/builtins.py 2007-03-01 06:50:52 +0000
+++ b/bzrlib/builtins.py 2007-03-01 08:44:14 +0000
@@ -342,6 +342,7 @@
file_ids_from=None):
import bzrlib.add
+ base_tree = None
if file_ids_from is not None:
try:
base_tree, base_path = WorkingTree.open_containing(
@@ -357,8 +358,14 @@
action = bzrlib.add.AddAction(to_file=self.outf,
should_print=(not is_quiet()))
- added, ignored = bzrlib.add.smart_add(file_list, not no_recurse,
- action=action, save=not dry_run)
+ if base_tree:
+ base_tree.lock_read()
+ try:
+ added, ignored = bzrlib.add.smart_add(file_list, not no_recurse,
+ action=action, save=not dry_run)
+ finally:
+ if base_tree is not None:
+ base_tree.unlock()
if len(ignored) > 0:
if verbose:
for glob in sorted(ignored.keys()):
@@ -1476,17 +1483,26 @@
@display_command
def run(self):
wt = WorkingTree.open_containing(u'.')[0]
- basis_inv = wt.basis_tree().inventory
- inv = wt.inventory
- for file_id in inv:
- if file_id in basis_inv:
- continue
- if inv.is_root(file_id) and len(basis_inv) == 0:
- continue
- path = inv.id2path(file_id)
- if not os.access(osutils.abspath(path), os.F_OK):
- continue
- self.outf.write(path + '\n')
+ wt.lock_read()
+ try:
+ basis = wt.basis_tree()
+ basis.lock_read()
+ try:
+ basis_inv = basis.inventory
+ inv = wt.inventory
+ for file_id in inv:
+ if file_id in basis_inv:
+ continue
+ if inv.is_root(file_id) and len(basis_inv) == 0:
+ continue
+ path = inv.id2path(file_id)
+ if not os.access(osutils.abspath(path), os.F_OK):
+ continue
+ self.outf.write(path + '\n')
+ finally:
+ basis.unlock()
+ finally:
+ wt.unlock()
class cmd_root(Command):
=== modified file 'bzrlib/tests/blackbox/test_add.py'
--- a/bzrlib/tests/blackbox/test_add.py 2007-03-01 05:26:07 +0000
+++ b/bzrlib/tests/blackbox/test_add.py 2007-03-01 08:44:14 +0000
@@ -144,7 +144,6 @@
'added b/c w/ file id from b/c\n',
out)
- new_tree.read_working_inventory()
self.assertEqual(base_tree.path2id('a'), new_tree.path2id('a'))
self.assertEqual(base_tree.path2id('b'), new_tree.path2id('b'))
self.assertEqual(base_tree.path2id('b/c'), new_tree.path2id('b/c'))
@@ -165,7 +164,6 @@
'added d w/ file id from b/d\n',
out)
- new_tree.read_working_inventory()
self.assertEqual(base_tree.path2id('b/c'), new_tree.path2id('c'))
self.assertEqual(base_tree.path2id('b/d'), new_tree.path2id('d'))
More information about the bazaar-commits
mailing list