Thread (2 messages) flat view 2 messages, 2 authors, 2016-06-15

Re: [PATCH v5 6/6] status: add missing blank line after list of "other" files

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:58:39

Junio C Hamano [off-list ref] writes:
Matthieu Moy [off-list ref] writes:
quoted
List of files in other sections ("Changes to be committed", ...) end with
a blank line.
It is not like we want to add a blank line at the end of each
element; it is rather that we want to have a blank line between each
element, so that they can have a bit of breathing room between them.

The output looks especially bad when there is nothing after the
'untracked' list.
We might want to revisit this later, but I take the above back at
least for now.

If we have absolutely nothing, we get this:

	$ git status
	On branch master
        nothing to commit
	$

And if we have something, we get this:

	$ git status
	On branch master
	Changes to be committed:
	  (use "git reset HEAD <file>..." to unstage)

	        new file:   foo

	$ git status
	On branch master
	Untracked files:
	  (use "git add <file>..." to include in what will be committed)

		bar
	nothing added to commit
	$ git status
	On branch master
	Changes to be committed:
	  (use "git reset HEAD <file>..." to unstage)

	        new file:   foo

	Untracked files:
	  (use "git add <file>..." to include in what will be committed)

		bar
	$

Given that we are already giving an unnecessary trailing blank line
in the "fully added without no untracked" case, it is not too bad to
add the same after the list of untracked files.

To properly "fix" this, we would need to refactor wt_status_print_*
which will get rid of wt_status_print_trailer(), so that routines
that produce each section is told if there is a previous output and
adds a separating line _before_ it emits anything on its own
(i.e. we switch from the "after we spit our stuff out, we leave a
blank line" mental model to "we are going to spit our stuff out but
we need a blank before it to separate our stuff from the previous
output"), and returns if the output now has something to the caller
so that the caller can pass that information to the function that
outputs the next section.

But until that happens, adding a trailing blank line unconditionally
is an OK thing to do, I think.
quoted
Signed-off-by: Matthieu Moy <redacted>
---
 t/t7508-status.sh | 21 +++++++++++++++++++++
 wt-status.c       |  4 +++-
 2 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index d0444d3..9bf9701 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -84,6 +84,7 @@ test_expect_success 'status --column' '
 #
 #	dir1/untracked dir2/untracked output
 #	dir2/modified  expect         untracked
+#
 EOF
 	COLUMNS=50 git -c status.displayCommentPrefix=true status --column="column dense" >output &&
 	test_i18ncmp expect output
@@ -117,6 +118,7 @@ cat >expect <<\EOF
 #	expect
 #	output
 #	untracked
+#
 EOF
 
 test_expect_success 'status with status.displayCommentPrefix=true' '
@@ -167,6 +169,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 
 test_expect_success 'status (advice.statusHints false)' '
@@ -241,6 +244,7 @@ Untracked files:
   (use "git add <file>..." to include in what will be committed)
 
 	dir2/modified
+
 Ignored files:
   (use "git add -f <file>..." to include in what will be committed)
 
@@ -250,6 +254,7 @@ Ignored files:
 	expect
 	output
 	untracked
+
 EOF
 	git status --ignored >output &&
 	test_i18ncmp expect output
@@ -308,6 +313,7 @@ Ignored files:
 	expect
 	output
 	untracked
+
 EOF
 	git status --ignored >output &&
 	test_i18ncmp expect output
@@ -430,6 +436,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git status -unormal >output &&
 	test_i18ncmp expect output
@@ -488,6 +495,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git status -uall >output &&
 	test_i18ncmp expect output
@@ -548,6 +556,7 @@ Untracked files:
 	../expect
 	../output
 	../untracked
+
 EOF
 	(cd dir1 && git status) >output &&
 	test_i18ncmp expect output
@@ -618,6 +627,7 @@ Untracked files:
 	<BLUE>expect<RESET>
 	<BLUE>output<RESET>
 	<BLUE>untracked<RESET>
+
 EOF
 	test_config color.ui always &&
 	git status | test_decode_color >output &&
@@ -747,6 +757,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	test_config status.relativePaths false &&
 	(cd dir1 && git status) >output &&
@@ -789,6 +800,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git commit --dry-run dir1/modified >output &&
 	test_i18ncmp expect output
@@ -838,6 +850,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git status >output &&
 	test_i18ncmp expect output
@@ -902,6 +915,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git config status.submodulesummary 10 &&
 	git status >output &&
@@ -952,6 +966,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 no changes added to commit (use "git add" and/or "git commit -a")
 EOF
 	git commit -m "commit submodule" &&
@@ -1012,6 +1027,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git config status.submodulesummary 10 &&
 	git commit --dry-run --amend >output &&
@@ -1066,6 +1082,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	echo modified  sm/untracked &&
 	git status --ignore-submodules=untracked >output &&
@@ -1177,6 +1194,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git status --ignore-submodules=untracked > output &&
 	test_i18ncmp expect output
@@ -1238,6 +1256,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 EOF
 	git status --ignore-submodules=untracked > output &&
 	test_i18ncmp expect output
@@ -1319,6 +1338,7 @@ cat > expect << EOF
 ;	expect
 ;	output
 ;	untracked
+;
 EOF
 
 test_expect_success "status (core.commentchar with submodule summary)" '
@@ -1352,6 +1372,7 @@ Untracked files:
 	expect
 	output
 	untracked
+
 no changes added to commit (use "git add" and/or "git commit -a")
 EOF
 	git status --ignore-submodules=all > output &&
diff --git a/wt-status.c b/wt-status.c
index 3c795da..2a9ca0f 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -751,7 +751,7 @@ static void wt_status_print_other(struct wt_status *s,
 
 	strbuf_release(&buf);
 	if (!column_active(s->colopts))
-		return;
+		goto conclude;
 
 	strbuf_addf(&buf, "%s%s\t%s",
 		    color(WT_STATUS_HEADER, s),
@@ -765,6 +765,8 @@ static void wt_status_print_other(struct wt_status *s,
 	print_columns(&output, s->colopts, &copts);
 	string_list_clear(&output, 0);
 	strbuf_release(&buf);
+conclude:
+	status_printf_ln(s, GIT_COLOR_NORMAL, "");
 }
 
 static void wt_status_print_verbose(struct wt_status *s)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help