From: Junio C Hamano <gitster@pobox.com>
To: Aniket Gupta <aniketgupta3001@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: [GSoC PATCH] object-name: use Q_() for the reflog entry count
Date: Fri, 23 Oct 2026 18:36:05 -0700 [thread overview]
Message-ID: <xmqq4ieb3mnu.fsf@gitster.g> (raw)
In-Reply-To: <20261023133118.456-1-aniketgupta3001@gmail.com> (Aniket Gupta's message of "Fri, 23 Oct 2026 13:31:18 +0000")
Aniket Gupta <aniketgupta3001@gmail.com> writes:
> When reflog is asked for an entry that it doesnt have, for eg with
> "HEAD@{5}" get_oid_basic() reports how many entries the log has. The
> message is not marked for plural forms and a log with one entry says
> that "only has 1 entries"
>
> Use Q_() so that the singular is used for one entry so that
> translations for languages with other plural forms also can have the
> right form for each count.
>
> Signed-off-by: Aniket Gupta <aniketgupta3001@gmail.com>
> ---
> object-name.c | 4 +++-
> t/t1400-update-ref.sh | 14 ++++++++++++++
> 2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/object-name.c b/object-name.c
> index 654668576..eeaac2ddc 100644
> --- a/object-name.c
> +++ b/object-name.c
> @@ -810,7 +810,9 @@ static int get_oid_basic(struct repository *r, const char *str, int len,
> if (flags & GET_OID_QUIETLY) {
> exit(128);
> }
> - die(_("log for '%.*s' only has %d entries"),
> + die(Q_("log for '%.*s' only has %d entry",
> + "log for '%.*s' only has %d entries",
> + co_cnt),
> len, str, co_cnt);
> }
> if (flags & GET_OID_GENTLY) {
> diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh
> index 1a164c96f..1d1b46379 100755
> --- a/t/t1400-update-ref.sh
> +++ b/t/t1400-update-ref.sh
> @@ -458,6 +458,20 @@ test_expect_success 'query reflog with gap' '
> test_grep -F "warning: log for ref $m has gap after $gd" stderr
> '
>
> +test_expect_success 'reflog entry out of range reports how many there are' '
> + test_when_finished "git update-ref -d $m" &&
> +
> + GIT_COMMITTER_DATE="1117150320 -0500" git update-ref $m $A &&
> + test_must_fail git rev-parse --verify "main@{5}" 2>actual &&
> + echo "fatal: log for ${SQ}main${SQ} only has 1 entry" >expect &&
> + test_cmp expect actual &&
> +
> + GIT_COMMITTER_DATE="1117150380 -0500" git update-ref $m $B &&
> + test_must_fail git rev-parse --verify "main@{5}" 2>actual &&
> + echo "fatal: log for ${SQ}main${SQ} only has 2 entries" >expect &&
> + test_cmp expect actual
> +'
> +
> test_expect_success 'creating initial files' '
> test_when_finished rm -f M &&
> echo TEST >F &&
Obviously there are existing tests that cover this message already,
and without adjusting them, the test suite would not pass with this
patch applied.
$ make >/dev/null 2>&1 && cd t && sh ./t1506-rev*.sh -i -v
Initialized empty Git repository in .git/
expecting success of 1506.1 'set up basic repo':
echo one > file.txt &&
mkdir subdir &&
echo two > subdir/file.txt &&
echo three > subdir/file2.txt &&
git add . &&
git commit -m init &&
echo four > index-only.txt &&
git add index-only.txt &&
echo five > disk-only.txt
...
ok 12 - incorrect file in :path and :N:path
expecting success of 1506.13 'invalid @{n} reference':
test_must_fail git rev-parse main@{99999} >output 2>error &&
test_must_be_empty output &&
test_grep "log for [^ ]* only has [0-9][0-9]* entries" error &&
test_must_fail git rev-parse --verify main@{99999} >output 2>error &&
test_must_be_empty output &&
test_grep "log for [^ ]* only has [0-9][0-9]* entries" error
error: 'grep log for [^ ]* only has [0-9][0-9]* entries error' didn't find a match in:
fatal: log for 'main' only has 1 entry
not ok 13 - invalid @{n} reference
#
# test_must_fail git rev-parse main@{99999} >output 2>error &&
# test_must_be_empty output &&
# test_grep "log for [^ ]* only has [0-9][0-9]* entries" error &&
# test_must_fail git rev-parse --verify main@{99999} >output 2>error &&
# test_must_be_empty output &&
# test_grep "log for [^ ]* only has [0-9][0-9]* entries" error
#
1..13
It could be that t1506 is the only one that needs adjusting.
$ git grep -n -e 'only has.*entries' -- :/t
t/t1400-update-ref.sh:471: echo "fatal: log for ${SQ}main${SQ} only has 2 entries" >expect &&
t/t1506-rev-parse-diagnosis.sh:145: test_grep "log for [^ ]* only has [0-9][0-9]* entries" error &&
t/t1506-rev-parse-diagnosis.sh:148: test_grep "log for [^ ]* only has [0-9][0-9]* entries" error
next prev parent reply other threads:[~2026-10-24 1:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-23 13:31 [GSoC PATCH] object-name: use Q_() for the reflog entry count Aniket Gupta
2026-10-24 1:36 ` Junio C Hamano [this message]
2026-10-24 2:02 ` Junio C Hamano
2026-10-25 6:12 ` [GSoC PATCH v2] " Aniket Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq4ieb3mnu.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=aniketgupta3001@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.