提交 205ffa94 编写于 作者: G Gustaf Hendeby 提交者: Junio C Hamano

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 '<file>'\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: NGustaf Hendeby <hendeby@isy.liu.se>
Signed-off-by: NJunio C Hamano <gitster@pobox.com>
上级 38ed1d89
......@@ -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) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册