Re: [PATCH v2 4/8] builtin/reflog: implement subcommand to write new entries
- From
Karthik Nayak <karthik.188@gmail.com>
- Date
- Jul 28, 2025, 20:39 UTC
- Message-ID
- <CAOLa=ZS6e9dv-c+tajooZa5qFZT2T+jqaJahd3BzVuE7H=5PwA@mail.gmail.com>
- In-Reply-To
- <xmqqo6t4up5f.fsf@gitster.g>
Junio C Hamano <gitster@pobox.com> writes:
Show 6 quoted lines
> "Kristoffer Haugsbakk" <kristofferhaugsbakk@fastmail.com> writes: > >> I tried `git reflog drop`[1] and it can deal with a branch like >> `branch`. It doesn’t need to be told `refs/heads/branch`. > > That sounds like a bug to me.
So `git reflog drop` `git reflog delete` and `git reflog expire` use `repo_dwim_log()` to resolve the provided reference.
And `repo_dwim_log()` uses the following `ref_rev_parse_rules` to resolve the reference.
static const char *ref_rev_parse_rules[] = {
"%.*s",
"refs/%.*s",
"refs/tags/%.*s",
"refs/heads/%.*s",
"refs/remotes/%.*s",
"refs/remotes/%.*s/HEAD",
NULL
};Which means we do a best case resolution of a given reference, but the function also checks for ambiguity and warns for it.