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

[PATCH 3/4] Improve "nothing to commit" part of status output

From
JRJuergen Ruehle <j.ruehle@bmiag.de>
Date
Jan 2, 2007, 19:26 UTC
Message-ID
<11677659941419-git-send-email-j.ruehle@bmiag.de>
In-Reply-To
<1167765983316-git-send-email-j.ruehle@bmiag.de>
From: =?iso-8859-1?q?J=FCrgen_R=FChle?= <j-r@online.de>

Previously git-status in a clean working directory would advice the user to use git add. This isn't very helpful when there is nothing to add in the working directory, therefore note a clean working directory while displaying the other sections and print the appropriate message for each case.

Signed-off-by: Jürgen Rühle <j-r@online.de>
---
 wt-status.c |   20 +++++++++++++++-----
 wt-status.h |    1 +
 2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/wt-status.c b/wt-status.c
index 98ca135..302f7ee 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -51,6 +51,8 @@ void wt_status_prepare(struct wt_status *s)
 	s->verbose = 0;
 	s->commitable = 0;
 	s->untracked = 0;
+
+	s->workdir_clean = 1;
 }
 
 static void wt_status_print_cached_header(const char *reference)
@@ -173,9 +175,12 @@ static void wt_status_print_changed_cb(struct diff_queue_struct *q,
                         struct diff_options *options,
                         void *data)
 {
+	struct wt_status *s = data;
 	int i;
-	if (q->nr)
+	if (q->nr) {
+		s->workdir_clean = 0;
 		wt_status_print_header("Changed but not added", use_add_msg);
+	}
 	for (i = 0; i < q->nr; i++)
 		wt_status_print_filepair(WT_STATUS_CHANGED, q->queue[i]);
 	if (q->nr)
@@ -225,7 +230,7 @@ static void wt_status_print_changed(struct wt_status *s)
 	run_diff_files(&rev, 0);
 }
 
-static void wt_status_print_untracked(const struct wt_status *s)
+static void wt_status_print_untracked(struct wt_status *s)
 {
 	struct dir_struct dir;
 	const char *x;
@@ -260,6 +265,7 @@ static void wt_status_print_untracked(const struct wt_status *s)
 				continue;
 		}
 		if (!shown_header) {
+			s->workdir_clean = 0;
 			wt_status_print_header("Untracked files", use_add_msg);
 			shown_header = 1;
 		}
@@ -302,9 +308,13 @@ void wt_status_print(struct wt_status *s)
 	if (s->verbose && !s->is_initial)
 		wt_status_print_verbose(s);
 	if (!s->commitable)
-		printf("%s (%s)\n",
-			s->amend ? "# No changes" : "nothing to commit",
-			use_add_msg);
+		if (s->amend)
+			printf("# No changes\n");
+		else if (s->workdir_clean)
+			printf(s->is_initial ? "nothing to commit\n"
+				: "nothing to commit (working directory matches HEAD)\n");
+		else
+			printf("no changes added to commit (use \"git add\" and/or \"git commit [-a|-i|-o]\")\n");
 }
 
 int git_status_config(const char *k, const char *v)
diff --git a/wt-status.h b/wt-status.h
index 0a5a5b7..892a86c 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -16,6 +16,7 @@ struct wt_status {
 	int verbose;
 	int amend;
 	int untracked;
+	int workdir_clean;
 };
 
 int git_status_config(const char *var, const char *value);
-- 
1.5.0.rc0.g31e2
Previous: Juergen RuehleNext: Juergen Ruehle
Message 11 of 15 in “Assorted small changes to runstatus”
  1. Assorted small changes to runstatusJuergen Ruehle, Jan 2, 2007
  2. 1/4 Clarify syntax and role of git-add in status outputJuergen Ruehle, Jan 2, 2007
  3. 2/4 Improve cached content header of status outputJuergen Ruehle, Jan 2, 2007
  4. Andy WhitcroftJan 5, 2007
  5. Junio C HamanoJan 5, 2007
  6. Andy WhitcroftJan 5, 2007
  7. Juergen RuehleJan 5, 2007
  8. Junio C HamanoJan 5, 2007
  9. Andy WhitcroftJan 8, 2007
  10. Juergen RuehleJan 8, 2007
  11. 3/4 Improve "nothing to commit" part of status outputJuergen Ruehle, Jan 2, 2007
  12. 4/4 Support --amend on initial commit in status outputJuergen Ruehle, Jan 2, 2007
  13. Junio C HamanoJan 3, 2007
  14. Juergen RuehleJan 3, 2007
  15. Remove unnecessary git-rm --cached reference from status outputJuergen Ruehle, Jan 7, 2007

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.