Merge branch 'mm/diag-path-in-treeish'
* mm/diag-path-in-treeish: Detailed diagnosis when parsing an object name fails.
This commit is contained in:
15
setup.c
15
setup.c
@ -77,6 +77,18 @@ int check_filename(const char *prefix, const char *arg)
|
||||
die_errno("failed to stat '%s'", arg);
|
||||
}
|
||||
|
||||
static void NORETURN die_verify_filename(const char *prefix, const char *arg)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
unsigned mode;
|
||||
/* try a detailed diagnostic ... */
|
||||
get_sha1_with_mode_1(arg, sha1, &mode, 0, prefix);
|
||||
/* ... or fall back the most general message. */
|
||||
die("ambiguous argument '%s': unknown revision or path not in the working tree.\n"
|
||||
"Use '--' to separate paths from revisions", arg);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* Verify a filename that we got as an argument for a pathspec
|
||||
* entry. Note that a filename that begins with "-" never verifies
|
||||
@ -90,8 +102,7 @@ void verify_filename(const char *prefix, const char *arg)
|
||||
die("bad flag '%s' used after filename", arg);
|
||||
if (check_filename(prefix, arg))
|
||||
return;
|
||||
die("ambiguous argument '%s': unknown revision or path not in the working tree.\n"
|
||||
"Use '--' to separate paths from revisions", arg);
|
||||
die_verify_filename(prefix, arg);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user