Merge lp:~jelmer/brz/ignored-directory into lp:brz

Proposed by Jelmer Vernooij
Status: Merged
Approved by: Jelmer Vernooij
Approved revision: no longer in the source branch.
Merge reported by: The Breezy Bot
Merged at revision: not available
Proposed branch: lp:~jelmer/brz/ignored-directory
Merge into: lp:brz
Diff against target: 54 lines (+15/-3)
3 files modified
breezy/git/tests/test_workingtree.py (+11/-0)
breezy/git/tree.py (+2/-0)
breezy/git/workingtree.py (+2/-3)
To merge this branch: bzr merge lp:~jelmer/brz/ignored-directory
Reviewer Review Type Date Requested Status
Martin Packman Approve
Review via email: mp+352937@code.launchpad.net

Commit message

Properly handled ignored directories in Git trees.

Description of the change

Properly handled ignored directories in Git trees.

To post a comment you must log in.
Revision history for this message
Martin Packman (gz) wrote :

Thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'breezy/git/tests/test_workingtree.py'
2--- breezy/git/tests/test_workingtree.py 2018-08-04 17:32:58 +0000
3+++ breezy/git/tests/test_workingtree.py 2018-08-12 03:29:07 +0000
4@@ -76,6 +76,17 @@
5 self.tree.revert(['a'])
6 self.assertFalse(self.tree.is_versioned('a'))
7
8+ def test_is_ignored_directory(self):
9+ self.assertFalse(self.tree.is_ignored('a'))
10+ self.build_tree(['a/'])
11+ self.assertFalse(self.tree.is_ignored('a'))
12+ self.build_tree_contents([('.gitignore', 'a\n')])
13+ self.tree._ignoremanager = None
14+ self.assertTrue(self.tree.is_ignored('a'))
15+ self.build_tree_contents([('.gitignore', 'a/\n')])
16+ self.tree._ignoremanager = None
17+ self.assertTrue(self.tree.is_ignored('a'))
18+
19
20 class TreeDeltaFromGitChangesTests(TestCase):
21
22
23=== modified file 'breezy/git/tree.py'
24--- breezy/git/tree.py 2018-08-04 17:32:58 +0000
25+++ breezy/git/tree.py 2018-08-12 03:29:07 +0000
26@@ -1294,6 +1294,8 @@
27 kind = osutils.file_kind(self.abspath(relpath))
28 if kind == 'directory':
29 (index, index_path) = self._lookup_index(relpath.encode('utf-8'))
30+ if index is None:
31+ return kind
32 try:
33 mode = index[index_path].mode
34 except KeyError:
35
36=== modified file 'breezy/git/workingtree.py'
37--- breezy/git/workingtree.py 2018-08-04 17:32:58 +0000
38+++ breezy/git/workingtree.py 2018-08-12 03:29:07 +0000
39@@ -631,13 +631,12 @@
40 match = self._global_ignoreglobster.match(filename)
41 if match is not None:
42 return match
43- encoded_filename = filename.encode('utf-8')
44 try:
45 if self.kind(filename) == 'directory':
46- encoded_filename += b'/'
47+ filename += '/'
48 except errors.NoSuchFile:
49 pass
50- encoded_filename = encoded_filename.lstrip(b'/')
51+ filename = filename.lstrip('/')
52 ignore_manager = self._get_ignore_manager()
53 ps = list(ignore_manager.find_matching(filename))
54 if not ps:

Subscribers

People subscribed via source and target branches