Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] git status: Fix false positive "new commits" output for dirty submodules

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:48:25
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

Jens Lehmann [off-list ref] writes:
Another way to fix this bug would have been to enter the correct sha1
into two->sha1 for submodules with new commits.
I didn't follow all the codepaths involved, but it might be worth a try.
The beginning of the patch may look something like this, and then you
would probably have to fix potential fallouts in diff.c from this change.

 diff-lib.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/diff-lib.c b/diff-lib.c
index d7e13cb..a147d9c 100644
--- a/diff-lib.c
+++ b/diff-lib.c
@@ -182,10 +182,9 @@ int run_diff_files(struct rev_info *revs, unsigned int option)
 		    && !DIFF_OPT_TST(&revs->diffopt, IGNORE_SUBMODULES)
 		    && (!changed || (revs->diffopt.output_format & DIFF_FORMAT_PATCH))
 		    && is_submodule_modified(ce->name)) {
-			changed = 1;
 			dirty_submodule = 1;
 		}
-		if (!changed) {
+		if (!changed && !dirty_submodule) {
 			ce_mark_uptodate(ce);
 			if (!DIFF_OPT_TST(&revs->diffopt, FIND_COPIES_HARDER))
 				continue;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help