reflog: improve error for when reflog is not found

The 'git reflog expire' prints the error message '<ref> points nowhere!'
when used with a non-existent ref. This message is a bit confusing and
vague. Modify the message to be more clear and direct.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Karthik Nayak
2025-03-14 09:40:34 +01:00
committed by Junio C Hamano
parent a36e024e98
commit 52f2dfb084
2 changed files with 3 additions and 3 deletions

View File

@@ -383,7 +383,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix,
struct expire_reflog_policy_cb cb = { .cmd = cmd }; struct expire_reflog_policy_cb cb = { .cmd = cmd };
if (!repo_dwim_log(the_repository, argv[i], strlen(argv[i]), NULL, &ref)) { if (!repo_dwim_log(the_repository, argv[i], strlen(argv[i]), NULL, &ref)) {
status |= error(_("%s points nowhere!"), argv[i]); status |= error(_("reflog could not be found: '%s'"), argv[i]);
continue; continue;
} }
set_reflog_expiry_param(&cb.cmd, ref); set_reflog_expiry_param(&cb.cmd, ref);

View File

@@ -315,9 +315,9 @@ test_expect_success 'git reflog expire unknown reference' '
test_config gc.reflogexpireunreachable never && test_config gc.reflogexpireunreachable never &&
test_must_fail git reflog expire main@{123} 2>stderr && test_must_fail git reflog expire main@{123} 2>stderr &&
test_grep "points nowhere" stderr && test_grep "error: reflog could not be found: ${SQ}main@{123}${SQ}" stderr &&
test_must_fail git reflog expire does-not-exist 2>stderr && test_must_fail git reflog expire does-not-exist 2>stderr &&
test_grep "points nowhere" stderr test_grep "error: reflog could not be found: ${SQ}does-not-exist${SQ}" stderr
' '
test_expect_success 'checkout should not delete log for packed ref' ' test_expect_success 'checkout should not delete log for packed ref' '