Merge lp:~jelmer/brz/keep-submodule 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/keep-submodule
Merge into: lp:brz
Diff against target: 78 lines (+31/-10)
2 files modified
breezy/git/tests/test_workingtree.py (+24/-7)
breezy/git/tree.py (+7/-3)
To merge this branch: bzr merge lp:~jelmer/brz/keep-submodule
Reviewer Review Type Date Requested Status
Martin Packman Approve
Review via email: mp+355820@code.launchpad.net

Commit message

Don't show a delta for unchanged submodules.

Description of the change

Don't show a delta for unchanged submodules.

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

Looks good, thanks!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'breezy/git/tests/test_workingtree.py'
--- breezy/git/tests/test_workingtree.py 2018-09-30 00:33:53 +0000
+++ breezy/git/tests/test_workingtree.py 2018-11-12 20:29:12 +0000
@@ -22,7 +22,9 @@
22import os22import os
23import stat23import stat
2424
25from dulwich.index import IndexEntry
25from dulwich.objects import (26from dulwich.objects import (
27 S_IFGITLINK,
26 Blob,28 Blob,
27 Tree,29 Tree,
28 ZERO_SHA,30 ZERO_SHA,
@@ -130,17 +132,19 @@
130 def setUp(self):132 def setUp(self):
131 super(ChangesBetweenGitTreeAndWorkingCopyTests, self).setUp()133 super(ChangesBetweenGitTreeAndWorkingCopyTests, self).setUp()
132 self.wt = self.make_branch_and_tree('.', format='git')134 self.wt = self.make_branch_and_tree('.', format='git')
135 self.store = self.wt.branch.repository._git.object_store
133136
134 def expectDelta(self, expected_changes,137 def expectDelta(self, expected_changes,
135 expected_extras=None, want_unversioned=False):138 expected_extras=None, want_unversioned=False,
136 store = self.wt.branch.repository._git.object_store139 tree_id=None):
137 try:140 if tree_id is None:
138 tree_id = store[self.wt.branch.repository._git.head()].tree141 try:
139 except KeyError:142 tree_id = self.store[self.wt.branch.repository._git.head()].tree
140 tree_id = None143 except KeyError:
144 tree_id = None
141 with self.wt.lock_read():145 with self.wt.lock_read():
142 changes, extras = changes_between_git_tree_and_working_copy(146 changes, extras = changes_between_git_tree_and_working_copy(
143 store, tree_id, self.wt, want_unversioned=want_unversioned)147 self.store, tree_id, self.wt, want_unversioned=want_unversioned)
144 self.assertEqual(expected_changes, list(changes))148 self.assertEqual(expected_changes, list(changes))
145 if expected_extras is None:149 if expected_extras is None:
146 expected_extras = set()150 expected_extras = set()
@@ -236,3 +240,16 @@
236 (None, newt.id)),240 (None, newt.id)),
237 ((None, b'a'), (None, stat.S_IFREG | 0o644), (None, newa.id))241 ((None, b'a'), (None, stat.S_IFREG | 0o644), (None, newa.id))
238 ], [b'a'], want_unversioned=True)242 ], [b'a'], want_unversioned=True)
243
244 def test_submodule(self):
245 self.build_tree(['a/'])
246 a = Blob.from_string(b'irrelevant\n')
247 with self.wt.lock_tree_write():
248 (index, index_path) = self.wt._lookup_index(b'a')
249 index[b'a'] = IndexEntry(
250 0, 0, 0, 0, S_IFGITLINK, 0, 0, 0, a.id, 0)
251 self.wt._index_dirty = True
252 t = Tree()
253 t.add(b"a", S_IFGITLINK , a.id)
254 self.store.add_object(t)
255 self.expectDelta([], tree_id=t.id)
239256
=== modified file 'breezy/git/tree.py'
--- breezy/git/tree.py 2018-09-14 16:53:25 +0000
+++ breezy/git/tree.py 2018-11-12 20:29:12 +0000
@@ -1408,9 +1408,13 @@
1408 # Entry was removed; keep it listed, but mark it as gone.1408 # Entry was removed; keep it listed, but mark it as gone.
1409 blobs[path] = (ZERO_SHA, 0)1409 blobs[path] = (ZERO_SHA, 0)
1410 elif e.errno == errno.EISDIR:1410 elif e.errno == errno.EISDIR:
1411 # Entry was turned into a directory1411 # TODO(jelmer): Only do this if 'path' appears in .gitmodules?
1412 dirified.append((path, Tree().id, stat.S_IFDIR))1412 if S_ISGITLINK(index_entry.mode):
1413 store.add_object(Tree())1413 blobs[path] = (index_entry.sha, index_entry.mode)
1414 else:
1415 # Entry was turned into a directory
1416 dirified.append((path, Tree().id, stat.S_IFDIR))
1417 store.add_object(Tree())
1414 else:1418 else:
1415 raise1419 raise
1416 else:1420 else:

Subscribers

People subscribed via source and target branches