Junio C Hamano [off-list ref] writes:
Jeff King [off-list ref] writes:
quoted
quoted
- "git submodule summary path...", defaults to HEAD which is _not_ unborn
(we shouldn't shift).
I don't think this is a problem. We do:
git rev-parse -q --verify --default HEAD path
and it correctly reports failure, so we never do the problematic shift.
Stepping back a bit, why do we even special case an unborn branch case in
the first place?
rm -fr one && git init one && cd one && git diff HEAD
would diagnose it as an error (we may want to sugarcoat "ambiguous
argument" error message, but that is a tangent).
I may be able to buy "status/diff internally calls submodule summary, and
that codepath needs to special case a submodule on an unborn branch _for
such and such reasons_" if the reasoning is sound, but even if that is the
case, shouldn't that special case be triggered explicitly by the caller of
"submodule summary" with an option?
Continuing to mutter to myself... I am suspecting that the right solution
to the issue $gmane/140066 raised may be your "dwim-ref fix in 003c6ab
(dwim_ref: fix dangling symref warning, 2010-02-16) and a patch along the
line of the attached (with 3deea89 reverted of course).
We _might_ also want to revert 003c6ab, though it is more or less an
independent issue.
wt-status.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/wt-status.c b/wt-status.c
index 5807fc3..1cca3aa 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -476,6 +476,9 @@ static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitt
NULL
};
+ if (s->is_initial && !uncommitted)
+ return;
+
sprintf(summary_limit, "%d", s->submodule_summary);
snprintf(index, sizeof(index), "GIT_INDEX_FILE=%s", s->index_file);