From 205ffa94be8f6492eef4bdaa3315e7fdc7e64e0b Mon Sep 17 00:00:00 2001 From: Gustaf Hendeby Date: Thu, 22 May 2008 23:59:42 +0200 Subject: [PATCH] Make git add -n and git -u -n output consistent Output format from "git add -n $path" lists path to blobs that are going to be added on a single line, separated with SP. On the other hand, the suggested "git add -u -n" shows one path per line, like "add ''\n". Of course, these two are inconsistent. Plain "git add -n" can afford to only say names of paths, as all it does is to add (update). However, "git add -u" needs to be able to express "remove" somehow. So if we need to have them formatted the same way, we need to unify with the "git add -n -u" format. Incidentally, this is consistent with how 'update-index' says it. This changes the output from "git add -n $paths" but as a general principle, output from Porcelain commands is a fair game for improvements and not for script consumption. Signed-off-by: Gustaf Hendeby Signed-off-by: Junio C Hamano --- builtin-add.c | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/builtin-add.c b/builtin-add.c index 05af57f6ec..8f81f3fbfb 100644 --- a/builtin-add.c +++ b/builtin-add.c @@ -196,6 +196,7 @@ int cmd_add(int argc, const char **argv, const char *prefix) int i, newfd; const char **pathspec; struct dir_struct dir; + int flags; argc = parse_options(argc, argv, builtin_add_options, builtin_add_usage, 0); @@ -208,11 +209,11 @@ int cmd_add(int argc, const char **argv, const char *prefix) newfd = hold_locked_index(&lock_file, 1); + flags = ((verbose ? ADD_CACHE_VERBOSE : 0) | + (show_only ? ADD_CACHE_PRETEND : 0)); + if (take_worktree_changes) { const char **pathspec; - int flags = ((verbose ? ADD_CACHE_VERBOSE : 0) | - (show_only ? ADD_CACHE_PRETEND : 0)); - if (read_cache() < 0) die("index file corrupt"); pathspec = get_pathspec(prefix, argv); @@ -234,17 +235,6 @@ int cmd_add(int argc, const char **argv, const char *prefix) fill_directory(&dir, pathspec, ignored_too); - if (show_only) { - const char *sep = "", *eof = ""; - for (i = 0; i < dir.nr; i++) { - printf("%s%s", sep, dir.entries[i]->name); - sep = " "; - eof = "\n"; - } - fputs(eof, stdout); - return 0; - } - if (read_cache() < 0) die("index file corrupt"); @@ -258,7 +248,7 @@ int cmd_add(int argc, const char **argv, const char *prefix) } for (i = 0; i < dir.nr; i++) - add_file_to_cache(dir.entries[i]->name, verbose ? ADD_CACHE_VERBOSE : 0); + add_file_to_cache(dir.entries[i]->name, flags); finish: if (active_cache_changed) { -- 2.11.4.GIT