Browse Source

git status: Show uncommitted submodule changes too when enabled

When the configuration variable status.submodulesummary is not 0 or
false, "git status" shows the submodule summary of the staged submodule
commits. But it did not show the summary of those commits not yet
staged in the supermodule, making it hard to see what will not be
committed.

The output of "submodule summary --for-status" has been changed from
"# Modified submodules:" to "# Submodule changes to be committed:" for
the already staged changes. "# Submodules changed but not updated:" has
been added for changes that will not be committed. This is much clearer
and consistent with the output for regular files.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jens Lehmann 15 years ago committed by Junio C Hamano
parent
commit
f17a5d3494
  1. 6
      git-submodule.sh
  2. 2
      t/t7401-submodule-summary.sh
  3. 4
      t/t7508-status.sh
  4. 12
      wt-status.c

6
git-submodule.sh

@ -688,7 +688,11 @@ cmd_summary() { @@ -688,7 +688,11 @@ cmd_summary() {
echo
done |
if test -n "$for_status"; then
echo "# Modified submodules:"
if [ -n "$files" ]; then
echo "# Submodules changed but not updated:"
else
echo "# Submodule changes to be committed:"
fi
echo "#"
sed -e 's|^|# |' -e 's|^# $|#|'
else

2
t/t7401-submodule-summary.sh

@ -213,7 +213,7 @@ EOF @@ -213,7 +213,7 @@ EOF
test_expect_success '--for-status' "
git submodule summary --for-status HEAD^ >actual &&
test_cmp actual - <<EOF
# Modified submodules:
# Submodule changes to be committed:
#
# * sm1 $head6...0000000:
#

4
t/t7508-status.sh

@ -579,7 +579,7 @@ cat >expect <<EOF @@ -579,7 +579,7 @@ cat >expect <<EOF
#
# modified: dir1/modified
#
# Modified submodules:
# Submodule changes to be committed:
#
# * sm 0000000...$head (1):
# > Add foo
@ -672,7 +672,7 @@ cat >expect <<EOF @@ -672,7 +672,7 @@ cat >expect <<EOF
#
# modified: dir1/modified
#
# Modified submodules:
# Submodule changes to be committed:
#
# * sm 0000000...$head (1):
# > Add foo

12
wt-status.c

@ -459,7 +459,7 @@ static void wt_status_print_changed(struct wt_status *s) @@ -459,7 +459,7 @@ static void wt_status_print_changed(struct wt_status *s)
wt_status_print_trailer(s);
}

static void wt_status_print_submodule_summary(struct wt_status *s)
static void wt_status_print_submodule_summary(struct wt_status *s, int uncommitted)
{
struct child_process sm_summary;
char summary_limit[64];
@ -468,11 +468,11 @@ static void wt_status_print_submodule_summary(struct wt_status *s) @@ -468,11 +468,11 @@ static void wt_status_print_submodule_summary(struct wt_status *s)
const char *argv[] = {
"submodule",
"summary",
"--cached",
uncommitted ? "--files" : "--cached",
"--for-status",
"--summary-limit",
summary_limit,
s->amend ? "HEAD^" : "HEAD",
uncommitted ? NULL : (s->amend ? "HEAD^" : "HEAD"),
NULL
};

@ -580,8 +580,10 @@ void wt_status_print(struct wt_status *s) @@ -580,8 +580,10 @@ void wt_status_print(struct wt_status *s)
wt_status_print_updated(s);
wt_status_print_unmerged(s);
wt_status_print_changed(s);
if (s->submodule_summary)
wt_status_print_submodule_summary(s);
if (s->submodule_summary) {
wt_status_print_submodule_summary(s, 0); /* staged */
wt_status_print_submodule_summary(s, 1); /* unstaged */
}
if (s->show_untracked_files)
wt_status_print_untracked(s);
else if (s->commitable)

Loading…
Cancel
Save