Rev 2333: Move is_ignored processing into _iter_changes, allowing optional lookup of unexpected files. in file:///home/robertc/source/baz/dirstate2/
Robert Collins
robertc at robertcollins.net
Mon Mar 12 05:29:11 GMT 2007
At file:///home/robertc/source/baz/dirstate2/
------------------------------------------------------------
revno: 2333
revision-id: robertc at robertcollins.net-20070312052908-h1rm7g7pnr5zegio
parent: robertc at robertcollins.net-20070312035424-swyf5foev6otm12f
committer: Robert Collins <robertc at robertcollins.net>
branch nick: dirstate2
timestamp: Mon 2007-03-12 16:29:08 +1100
message:
Move is_ignored processing into _iter_changes, allowing optional lookup of unexpected files.
modified:
bzrlib/status.py status.py-20050505062338-431bfa63ec9b19e6
bzrlib/tests/intertree_implementations/test_compare.py test_compare.py-20060724101752-09ysswo1a92uqyoz-2
bzrlib/workingtree_4.py workingtree_4.py-20070208044105-5fgpc5j3ljlh5q6c-1
=== modified file 'bzrlib/status.py'
--- a/bzrlib/status.py 2007-03-12 03:54:24 +0000
+++ b/bzrlib/status.py 2007-03-12 05:29:08 +0000
@@ -145,17 +145,12 @@
if short:
changes = new._iter_changes(old, show_unchanged, specific_files,
require_versioned=False, want_unknown=True)
- reporter = _mod_delta.ChangeReporter(output_file=to_file,
- unversioned_filter=new.is_ignored)
+ reporter = _mod_delta.ChangeReporter(output_file=to_file)
_mod_delta.report_changes(changes, reporter)
else:
delta = new.changes_from(old, want_unchanged=show_unchanged,
specific_files=specific_files,
want_unknown=True)
- # filter out unknown files. We may want a tree method for
- # this
- delta.unversioned = [unversioned for unversioned in
- delta.unversioned if not new.is_ignored(unversioned[0])]
delta.show(to_file,
show_ids=show_ids,
show_unchanged=show_unchanged,
=== modified file 'bzrlib/tests/intertree_implementations/test_compare.py'
--- a/bzrlib/tests/intertree_implementations/test_compare.py 2007-03-12 03:54:24 +0000
+++ b/bzrlib/tests/intertree_implementations/test_compare.py 2007-03-12 05:29:08 +0000
@@ -795,6 +795,31 @@
])
self.assertEqual(expected, self.do_iter_changes(tree1, tree2))
+ def test_ignores_filters_unknown_paths_in_tree(self):
+ tree1 = self.make_branch_and_tree('tree1')
+ tree2 = self.make_to_branch_and_tree('tree2')
+ self.build_tree(['tree2/file', 'tree2/dir/'])
+ self.build_tree_contents([('tree1/.bzrignore', 'file\n')])
+ self.build_tree_contents([('tree2/.bzrignore', 'file\n')])
+ tree1.add(['.bzrignore'], ['ignore-id'])
+ tree2.add(['.bzrignore'], ['ignore-id'])
+ tree1.set_root_id(tree2.path2id(''))
+ tree1, tree2 = self.mutable_trees_to_test_trees(tree1, tree2)
+ tree1.lock_read()
+ self.addCleanup(tree1.unlock)
+ tree2.lock_read()
+ self.addCleanup(tree2.unlock)
+ expected = [
+ self.unknown(tree2, 'dir'),
+ ]
+ specific_files=['file', 'dir']
+ expected = sorted(expected)
+ self.assertEqual(expected, self.do_iter_changes(tree1, tree2,
+ require_versioned=False, want_unknown=True))
+ self.assertEqual(expected, self.do_iter_changes(tree1, tree2,
+ specific_files=specific_files, require_versioned=False,
+ want_unknown=True))
+
def test_unknown_paths_in_tree(self):
tree1 = self.make_branch_and_tree('tree1')
tree2 = self.make_to_branch_and_tree('tree2')
=== modified file 'bzrlib/workingtree_4.py'
--- a/bzrlib/workingtree_4.py 2007-03-12 03:54:24 +0000
+++ b/bzrlib/workingtree_4.py 2007-03-12 05:29:08 +0000
@@ -1764,7 +1764,7 @@
last_target_parent = [None, None, None]
use_filesystem_for_exec = (sys.platform != 'win32')
-
+ is_ignored = self.target.is_ignored
def _process_entry(entry, path_info):
"""Compare an entry and real disk to generate delta information.
@@ -1993,7 +1993,7 @@
((utf8_decode(result[1][0])[0]),
utf8_decode(result[1][1])[0]),) + result[2:]
yield result
- if want_unknown and not path_handled:
+ if want_unknown and not path_handled and not is_ignored(current_root):
yield (None, (None, current_root), True, (False, False),
(None, None),
(None, splitpath(current_root)[-1]),
@@ -2182,7 +2182,7 @@
if advance_path and current_path_info is not None:
if not path_handled:
# unversioned in all regards
- if want_unknown:
+ if want_unknown and not is_ignored(current_path_info[0]):
yield (None, (None, current_path_info[0]),
True,
(False, False),
More information about the bazaar-commits
mailing list