From: Junio C Hamano <gitster@pobox.com>
To: Karthik Nayak <karthik.188@gmail.com>
Cc: "Kristoffer Haugsbakk" <kristofferhaugsbakk@fastmail.com>,
"Patrick Steinhardt" <ps@pks.im>,
git@vger.kernel.org, "Justin Tobler" <jltobler@gmail.com>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
"Toon Claes" <toon@iotcl.com>
Subject: Re: [PATCH v2 4/8] builtin/reflog: implement subcommand to write new entries
Date: Mon, 28 Jul 2025 13:59:46 -0700 [thread overview]
Message-ID: <xmqqms8ot4jh.fsf@gitster.g> (raw)
In-Reply-To: <CAOLa=ZS6e9dv-c+tajooZa5qFZT2T+jqaJahd3BzVuE7H=5PwA@mail.gmail.com> (Karthik Nayak's message of "Mon, 28 Jul 2025 13:39:05 -0700")
Karthik Nayak <karthik.188@gmail.com> writes:
> Junio C Hamano <gitster@pobox.com> writes:
>
>> "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.
True. But as I considered "git reflog" to be a lot closer to the
plumbing than to Porcelain, using the dwim thing smelled like a bug.
It also is OK to update the commands that do not use dwim-log to
also use it. That way, the result would be consistent across
subcommands of "git reflog". As long as the users are aware of the
fact that the command uses dwim-log, they can always spell their ref
in full like "refs/heads/branch" to avoid ambiguity check getting in
the way.
Thanks.
next prev parent reply other threads:[~2025-07-28 20:59 UTC|newest]
Thread overview: 114+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-22 11:20 [PATCH 0/8] refs: fix migration of reflog entries Patrick Steinhardt
2025-07-22 11:20 ` [PATCH 1/8] Documentation/git-reflog: convert to use synopsis type Patrick Steinhardt
2025-07-22 22:04 ` Junio C Hamano
2025-07-22 11:20 ` [PATCH 2/8] builtin/reflog: improve grouping of subcommands Patrick Steinhardt
2025-07-23 18:14 ` Justin Tobler
2025-07-24 7:42 ` Patrick Steinhardt
2025-07-24 16:45 ` Junio C Hamano
2025-07-22 11:20 ` [PATCH 3/8] refs: export `ref_transaction_update_reflog()` Patrick Steinhardt
2025-07-23 18:25 ` Justin Tobler
2025-07-24 8:36 ` Karthik Nayak
2025-07-24 12:55 ` Toon Claes
2025-07-22 11:20 ` [PATCH 4/8] builtin/reflog: implement subcommand to write new entries Patrick Steinhardt
2025-07-23 19:00 ` Justin Tobler
2025-07-24 7:42 ` Patrick Steinhardt
2025-07-24 12:54 ` Toon Claes
2025-07-25 5:36 ` Patrick Steinhardt
2025-07-24 16:20 ` SZEDER Gábor
2025-07-24 21:10 ` Junio C Hamano
2025-07-25 5:36 ` Patrick Steinhardt
2025-07-25 14:35 ` Junio C Hamano
2025-07-22 11:20 ` [PATCH 5/8] ident: fix type of string length parameter Patrick Steinhardt
2025-07-22 11:20 ` [PATCH 6/8] refs: fix identity for migrated reflogs Patrick Steinhardt
2025-07-23 19:41 ` Justin Tobler
2025-07-24 7:42 ` Patrick Steinhardt
2025-07-24 9:41 ` Karthik Nayak
2025-07-24 12:56 ` Toon Claes
2025-07-22 11:20 ` [PATCH 7/8] refs: stop unsetting REF_HAVE_OLD for log-only updates Patrick Steinhardt
2025-07-23 20:31 ` Justin Tobler
2025-07-24 7:42 ` Patrick Steinhardt
2025-07-24 10:21 ` Karthik Nayak
2025-07-24 11:35 ` Patrick Steinhardt
2025-07-22 11:20 ` [PATCH 8/8] refs: fix invalid old object IDs when migrating reflogs Patrick Steinhardt
2025-07-22 22:09 ` Junio C Hamano
2025-07-23 4:04 ` Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 0/8] refs: fix migration of reflog entries Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 1/8] Documentation/git-reflog: convert to use synopsis type Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 2/8] builtin/reflog: improve grouping of subcommands Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 3/8] refs: export `ref_transaction_update_reflog()` Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 4/8] builtin/reflog: implement subcommand to write new entries Patrick Steinhardt
2025-07-28 15:33 ` Kristoffer Haugsbakk
2025-07-28 18:49 ` Junio C Hamano
2025-07-28 20:39 ` Karthik Nayak
2025-07-28 20:59 ` Junio C Hamano [this message]
2025-07-30 7:55 ` Karthik Nayak
2025-07-29 0:25 ` Ben Knoble
2025-07-29 6:14 ` Kristoffer Haugsbakk
2025-07-29 6:51 ` Patrick Steinhardt
2025-07-29 15:00 ` Junio C Hamano
2025-07-30 5:33 ` Patrick Steinhardt
2025-07-30 10:33 ` Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 5/8] ident: fix type of string length parameter Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 6/8] refs: fix identity for migrated reflogs Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 7/8] refs: stop unsetting REF_HAVE_OLD for log-only updates Patrick Steinhardt
2025-07-25 11:36 ` Jeff King
2025-07-28 14:43 ` Patrick Steinhardt
2025-07-29 7:14 ` Jeff King
2025-07-29 7:54 ` Patrick Steinhardt
2025-07-25 6:58 ` [PATCH v2 8/8] refs: fix invalid old object IDs when migrating reflogs Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 0/9] refs: fix migration of reflog entries Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 1/9] Documentation/git-reflog: convert to use synopsis type Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 2/9] builtin/reflog: improve grouping of subcommands Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 3/9] refs: export `ref_transaction_update_reflog()` Patrick Steinhardt
2025-08-01 11:38 ` Toon Claes
2025-08-04 7:37 ` Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 4/9] builtin/reflog: implement subcommand to write new entries Patrick Steinhardt
2025-07-29 16:07 ` Junio C Hamano
2025-08-01 11:37 ` Toon Claes
2025-08-04 7:38 ` Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 5/9] ident: fix type of string length parameter Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 6/9] refs: fix identity for migrated reflogs Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 7/9] refs/files: detect race when generating reflog entry for HEAD Patrick Steinhardt
2025-07-29 16:16 ` Junio C Hamano
2025-08-01 11:55 ` Toon Claes
2025-08-02 11:11 ` Jeff King
2025-08-04 7:38 ` Patrick Steinhardt
2025-08-04 14:47 ` Jeff King
2025-07-29 8:55 ` [PATCH v3 8/9] refs: stop unsetting REF_HAVE_OLD for log-only updates Patrick Steinhardt
2025-07-29 8:55 ` [PATCH v3 9/9] refs: fix invalid old object IDs when migrating reflogs Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 0/9] refs: fix migration of reflog entries Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 1/9] Documentation/git-reflog: convert to use synopsis type Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 2/9] builtin/reflog: improve grouping of subcommands Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 3/9] refs: export `ref_transaction_update_reflog()` Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 4/9] builtin/reflog: implement subcommand to write new entries Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 5/9] ident: fix type of string length parameter Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 6/9] refs: fix identity for migrated reflogs Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 7/9] refs/files: detect race when generating reflog entry for HEAD Patrick Steinhardt
2025-08-04 15:38 ` Jeff King
2025-08-04 9:46 ` [PATCH v4 8/9] refs: stop unsetting REF_HAVE_OLD for log-only updates Patrick Steinhardt
2025-08-04 9:46 ` [PATCH v4 9/9] refs: fix invalid old object IDs when migrating reflogs Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 0/9] refs: fix migration of reflog entries Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 1/9] Documentation/git-reflog: convert to use synopsis type Patrick Steinhardt
2025-08-05 17:04 ` Jean-Noël AVILA
2025-08-05 21:47 ` Junio C Hamano
2025-08-06 5:53 ` Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 2/9] builtin/reflog: improve grouping of subcommands Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 3/9] refs: export `ref_transaction_update_reflog()` Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 4/9] builtin/reflog: implement subcommand to write new entries Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 5/9] ident: fix type of string length parameter Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 6/9] refs: fix identity for migrated reflogs Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 7/9] refs/files: detect race when generating reflog entry for HEAD Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 8/9] refs: stop unsetting REF_HAVE_OLD for log-only updates Patrick Steinhardt
2025-08-05 15:11 ` [PATCH v5 9/9] refs: fix invalid old object IDs when migrating reflogs Patrick Steinhardt
2025-08-05 18:47 ` [PATCH v5 0/9] refs: fix migration of reflog entries Jeff King
2025-08-06 5:53 ` Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 " Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 1/9] Documentation/git-reflog: convert to use synopsis type Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 2/9] builtin/reflog: improve grouping of subcommands Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 3/9] refs: export `ref_transaction_update_reflog()` Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 4/9] builtin/reflog: implement subcommand to write new entries Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 5/9] ident: fix type of string length parameter Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 6/9] refs: fix identity for migrated reflogs Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 7/9] refs/files: detect race when generating reflog entry for HEAD Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 8/9] refs: stop unsetting REF_HAVE_OLD for log-only updates Patrick Steinhardt
2025-08-06 5:54 ` [PATCH v6 9/9] refs: fix invalid old object IDs when migrating reflogs Patrick Steinhardt
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=xmqqms8ot4jh.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=jltobler@gmail.com \
--cc=karthik.188@gmail.com \
--cc=kristofferhaugsbakk@fastmail.com \
--cc=ps@pks.im \
--cc=szeder.dev@gmail.com \
--cc=toon@iotcl.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).