提交 3e1a70d9 编写于 作者: P Paul Mackerras 提交者: Junio C Hamano

rev-parse: better error message for ambiguous arguments

Currently, if git-rev-parse encounters an argument that is neither a
recognizable revision name nor the name of an existing file or
directory, and it hasn't encountered a "--" argument, it prints an
error message saying "No such file or directory".  This can be
confusing for users, including users of programs such as gitk that
use git-rev-parse, who may then think that they can't ask about the
history of files that no longer exist.

This makes it print a better error message, one that points out the
ambiguity and tells the user what to do to fix it.
Signed-off-by: NPaul Mackerras <paulus@samba.org>
上级 34fd1c9a
......@@ -160,6 +160,14 @@ static int show_file(const char *arg)
return 0;
}
static void die_badfile(const char *arg)
{
if (errno != ENOENT)
die("'%s': %s", arg, strerror(errno));
die("'%s' is ambiguous - revision name or file/directory name?\n"
"Please put '--' before the list of filenames.", arg);
}
int main(int argc, char **argv)
{
int i, as_is = 0, verify = 0;
......@@ -176,7 +184,7 @@ int main(int argc, char **argv)
if (as_is) {
if (show_file(arg) && as_is < 2)
if (lstat(arg, &st) < 0)
die("'%s': %s", arg, strerror(errno));
die_badfile(arg);
continue;
}
if (!strcmp(arg,"-n")) {
......@@ -343,7 +351,7 @@ int main(int argc, char **argv)
if (verify)
die("Needed a single revision");
if (lstat(arg, &st) < 0)
die("'%s': %s", arg, strerror(errno));
die_badfile(arg);
}
show_default();
if (verify && revs_count != 1)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册