mirror of
https://github.com/git/git.git
synced 2026-01-11 21:33:13 +09:00
describe: error if blob not found
If describe_blob() does not find the blob in question, it returns an empty strbuf, and we print an empty line. This differs from describe_commit(), which always either returns an answer or calls die() itself. As the blob function was bolted onto the command afterwards, I think its behavior is not intentional, and it is just a bug that it does not report an error. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
e715f77682
commit
db2664b6f7
@ -535,6 +535,9 @@ static void describe_blob(const struct object_id *oid, struct strbuf *dst)
|
||||
reset_revision_walk();
|
||||
release_revisions(&revs);
|
||||
strvec_clear(&args);
|
||||
|
||||
if (!dst->len)
|
||||
die(_("blob '%s' not reachable from HEAD"), oid_to_hex(oid));
|
||||
}
|
||||
|
||||
static void describe(const char *arg, int last_one)
|
||||
|
||||
@ -409,6 +409,12 @@ test_expect_success 'describe tag object' '
|
||||
test_grep "fatal: test-blob-1 is neither a commit nor blob" actual
|
||||
'
|
||||
|
||||
test_expect_success 'describe an unreachable blob' '
|
||||
blob=$(echo not-found-anywhere | git hash-object -w --stdin) &&
|
||||
test_must_fail git describe $blob 2>actual &&
|
||||
test_grep "blob .$blob. not reachable from HEAD" actual
|
||||
'
|
||||
|
||||
test_expect_success ULIMIT_STACK_SIZE 'name-rev works in a deep repo' '
|
||||
i=1 &&
|
||||
while test $i -lt 8000
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user