Re: [PATCH] git status: Fix false positive "new commits" output for dirty submodules
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 11, 2010, 20:04 UTC
- Message-ID
- <7v3a061v7m.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <4B9909F6.5090104@web.de>
Jens Lehmann <Jens.Lehmann@web.de> 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;