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

[PATCH v2 1/2] status: refactor output format to represent "default"

From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Date
Oct 18, 2012, 01:57 UTC
Message-ID
<1350525480-30395-1-git-send-email-pclouds@gmail.com>
In-Reply-To
<1350404569-9787-1-git-send-email-pclouds@gmail.com>
From: Jeff King <peff@peff.net>

When deciding which output format to use, we default an internal enum to STATUS_FORMAT_LONG and modify it if "--porcelain" or "--short" is given. If this enum is set to LONG, then we know the user has not specified any format, and we can kick in default behaviors. This works because there is no "--long" which they could use to explicitly specify LONG.

Let's expand the enum to have an explicit STATUS_FORMAT_NONE, in preparation for adding "--long". Then we can distinguish between LONG and NONE when setting other defaults. There are two such cases:

  1. The user has asked for NUL termination. With NONE, we
     currently default to turning on the porcelain mode.
     With an explicit --long, we would in theory use NUL
     termination with the long mode, but it does not support
     it. So we can just complain and die.
  2. When an output format is given to "git commit", we
     default to "--dry-run". This behavior would now kick in
     when "--long" is given, too.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
 Two die()s with --long are moved to the next patch where --long is
 introduced.
 builtin/commit.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index a17a5df..984e29c 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -112,10 +112,11 @@ static const char *only_include_assumed;
 static struct strbuf message = STRBUF_INIT;
 
 static enum {
+	STATUS_FORMAT_NONE = 0,
 	STATUS_FORMAT_LONG,
 	STATUS_FORMAT_SHORT,
 	STATUS_FORMAT_PORCELAIN
-} status_format = STATUS_FORMAT_LONG;
+} status_format;
 
 static int opt_parse_m(const struct option *opt, const char *arg, int unset)
 {
@@ -454,6 +455,7 @@ static int run_status(FILE *fp, const char *index_file, const char *prefix, int
 	case STATUS_FORMAT_PORCELAIN:
 		wt_porcelain_print(s);
 		break;
+	case STATUS_FORMAT_NONE:
 	case STATUS_FORMAT_LONG:
 		wt_status_print(s);
 		break;
@@ -1058,9 +1060,11 @@ static int parse_and_validate_options(int argc, const char *argv[],
 	if (all && argc > 0)
 		die(_("Paths with -a does not make sense."));
 
-	if (s->null_termination && status_format == STATUS_FORMAT_LONG)
-		status_format = STATUS_FORMAT_PORCELAIN;
-	if (status_format != STATUS_FORMAT_LONG)
+	if (s->null_termination) {
+		if (status_format == STATUS_FORMAT_NONE)
+			status_format = STATUS_FORMAT_PORCELAIN;
+	}
+	if (status_format != STATUS_FORMAT_NONE)
 		dry_run = 1;
 
 	return argc;
@@ -1186,8 +1190,10 @@ int cmd_status(int argc, const char **argv, const char *prefix)
 			     builtin_status_usage, 0);
 	finalize_colopts(&s.colopts, -1);
 
-	if (s.null_termination && status_format == STATUS_FORMAT_LONG)
-		status_format = STATUS_FORMAT_PORCELAIN;
+	if (s.null_termination) {
+		if (status_format == STATUS_FORMAT_NONE)
+			status_format = STATUS_FORMAT_PORCELAIN;
+	}
 
 	handle_untracked_files_arg(&s);
 	if (show_ignored_in_status)
@@ -1216,6 +1222,7 @@ int cmd_status(int argc, const char **argv, const char *prefix)
 	case STATUS_FORMAT_PORCELAIN:
 		wt_porcelain_print(&s);
 		break;
+	case STATUS_FORMAT_NONE:
 	case STATUS_FORMAT_LONG:
 		s.verbose = verbose;
 		s.ignore_submodule_arg = ignore_submodule_arg;
-- 
1.8.0.rc2.32.g1729c8c
Previous: Jeff KingNext: Nguyễn Thái Ngọc Duy
Message 4 of 10 in “status: add --long for default format”
  1. status: add --long for default formatNguyễn Thái Ngọc Duy, Oct 16, 2012
  2. Jeff KingOct 16, 2012
  3. Jeff KingOct 16, 2012
  4. 1/2 status: refactor output format to represent "default"Nguyễn Thái Ngọc Duy, Oct 18, 2012
  5. 2/2 status: add --long for default formatNguyễn Thái Ngọc Duy, Oct 18, 2012
  6. Jeff KingOct 18, 2012
  7. status: refactor output format to represent "default" and add --longNguyễn Thái Ngọc Duy, Oct 18, 2012
  8. Jeff KingOct 18, 2012
  9. Junio C HamanoOct 18, 2012
  10. Jeff KingOct 18, 2012

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.