git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/9] git stat: show traditional status headers and trailers as well

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 15, 2009, 22:39 UTC
Message-ID
<1250375997-10657-6-git-send-email-gitster@pobox.com>
In-Reply-To
<1250375997-10657-5-git-send-email-gitster@pobox.com>
Also honor -v to show the "diff --cached" output.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 * Fix-up to 3/9; will be squashed in the final round to remove the trace
   of ill conceived wt_status_print_body() refactoring.
 builtin-commit.c |    8 +++++++-
 wt-status.c      |   27 +++++++++------------------
 wt-status.h      |    1 -
 3 files changed, 16 insertions(+), 20 deletions(-)
diff --git a/builtin-commit.c b/builtin-commit.c
index 7120876..8db0365 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -352,6 +352,8 @@ static char *prepare_index(int argc, const char **argv, const char *prefix, int
 static int run_status(FILE *fp, const char *index_file, const char *prefix, int nowarn,
 		      struct wt_status *s)
 {
+	unsigned char sha1[20];
+
 	if (s->relative_paths)
 		s->prefix = prefix;
 
@@ -363,7 +365,9 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix, int
 	s->index_file = index_file;
 	s->fp = fp;
 	s->nowarn = nowarn;
+	s->is_initial = get_sha1(s->reference, sha1) ? 1 : 0;
 
+	wt_status_collect(s);
 	wt_status_print(s);
 
 	return s->commitable;
@@ -903,6 +907,7 @@ int cmd_stat(int argc, const char **argv, const char *prefix)
 	struct wt_status s;
 	unsigned char sha1[20];
 	static struct option builtin_stat_options[] = {
+		OPT__VERBOSE(&verbose),
 		{ OPTION_STRING, 'u', "untracked-files", &untracked_files_arg,
 		  "mode",
 		  "show untracked files, optional modes: all, normal, no. (Default: all)",
@@ -922,13 +927,14 @@ int cmd_stat(int argc, const char **argv, const char *prefix)
 	s.is_initial = get_sha1(s.reference, sha1) ? 1 : 0;
 	wt_status_collect(&s);
 
+	s.verbose = verbose;
 	if (s.relative_paths)
 		s.prefix = prefix;
 	if (s.use_color == -1)
 		s.use_color = git_use_color_default;
 	if (diff_use_color_default == -1)
 		diff_use_color_default = git_use_color_default;
-	wt_status_print_body(&s);
+	wt_status_print(&s);
 	return 0;
 }
 
diff --git a/wt-status.c b/wt-status.c
index c887a90..c55be53 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -531,25 +531,10 @@ static void wt_status_print_tracking(struct wt_status *s)
 	color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s), "#");
 }
 
-void wt_status_print_body(struct wt_status *s)
-{
-	wt_status_print_unmerged(s);
-	wt_status_print_updated(s);
-	wt_status_print_changed(s);
-	if (s->submodule_summary)
-		wt_status_print_submodule_summary(s);
-	if (s->show_untracked_files)
-		wt_status_print_untracked(s);
-	else if (s->commitable)
-		 fprintf(s->fp, "# Untracked files not listed (use -u option to show untracked files)\n");
-}
-
 void wt_status_print(struct wt_status *s)
 {
-	unsigned char sha1[20];
 	const char *branch_color = color(WT_STATUS_HEADER, s);
 
-	s->is_initial = get_sha1(s->reference, sha1) ? 1 : 0;
 	if (s->branch) {
 		const char *on_what = "On branch ";
 		const char *branch_name = s->branch;
@@ -566,15 +551,21 @@ void wt_status_print(struct wt_status *s)
 			wt_status_print_tracking(s);
 	}
 
-	wt_status_collect(s);
-
 	if (s->is_initial) {
 		color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s), "#");
 		color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s), "# Initial commit");
 		color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s), "#");
 	}
 
-	wt_status_print_body(s);
+	wt_status_print_unmerged(s);
+	wt_status_print_updated(s);
+	wt_status_print_changed(s);
+	if (s->submodule_summary)
+		wt_status_print_submodule_summary(s);
+	if (s->show_untracked_files)
+		wt_status_print_untracked(s);
+	else if (s->commitable)
+		 fprintf(s->fp, "# Untracked files not listed (use -u option to show untracked files)\n");
 
 	if (s->verbose)
 		wt_status_print_verbose(s);
diff --git a/wt-status.h b/wt-status.h
index ab52ce1..a0e7517 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -54,6 +54,5 @@ struct wt_status {
 void wt_status_prepare(struct wt_status *s);
 void wt_status_print(struct wt_status *s);
 void wt_status_collect(struct wt_status *s);
-void wt_status_print_body(struct wt_status *s);
 
 #endif /* STATUS_H */
-- 
1.6.4.224.g3be84
Previous: Junio C HamanoNext: Junio C Hamano
Message 6 of 11 in “"git status" that is not "git commit --dry-run"”
  1. 0/9 "git status" that is not "git commit --dry-run"Junio C Hamano, Aug 15, 2009
  2. 1/9 Documentation/git-commit.txt: describe --dry-runJunio C Hamano, Aug 15, 2009
  3. 2/9 git commit --dry-run -v: show diff in color when askedJunio C Hamano, Aug 15, 2009
  4. 3/9 git stat: the beginningJunio C Hamano, Aug 15, 2009
  5. 4/9 git stat: honor relative paths settingJunio C Hamano, Aug 15, 2009
  6. 5/9 git stat: show traditional status headers and trailers as wellJunio C Hamano, Aug 15, 2009
  7. 6/9 git stat: pathspec limits, unlike traditional "git status"Junio C Hamano, Aug 15, 2009
  8. 7/9 git stat -s: short status outputJunio C Hamano, Aug 15, 2009
  9. 8/9 git status: not "commit --dry-run" anymoreJunio C Hamano, Aug 15, 2009
  10. 9/9 git-status: adjust testsJunio C Hamano, Aug 15, 2009
  11. Thomas RastAug 17, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.