Re: [PATCH v3 2/2] revision: Implement `git log --merge` also for rebase/cherry_pick/revert
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Jan 24, 2024, 17:19 UTC
- Message-ID
- <dfb582cf-b1e4-414d-bfe1-0f93d910ec54@kdbg.org>
- In-Reply-To
- <CABPp-BE4zqRX=wd5EBj96hzCS8V73QpdN-2pCpv7qMdkpkX93w@mail.gmail.com>
Am 24.01.24 um 08:06 schrieb Elijah Newren:
Show 19 quoted lines
> On Wed, Jan 17, 2024 at 12:14 AM Michael Lohmann
>> +static const char *lookup_other_head(struct object_id *oid)
>> +{
>> + int i;
>> + static const char *const other_head[] = {
>> + "MERGE_HEAD", "REBASE_HEAD", "CHERRY_PICK_HEAD", "REVERT_HEAD"
>> + };
>> +
>> + for (i = 0; i < ARRAY_SIZE(other_head); i++)
>> + if (!read_ref_full(other_head[i],
>> + RESOLVE_REF_READING | RESOLVE_REF_NO_RECURSE,
>> + oid, NULL)) {
>> + if (is_null_oid(oid))
>> + die("%s is a symbolic ref???", other_head[i]);
>> + return other_head[i];
>> + }
>> +
>> + die("--merge without MERGE_HEAD, REBASE_HEAD, CHERRY_PICK_HEAD or REVERT_HEAD?");
>> +}...
> Also, what about cases where users do a cherry-pick in the middle of a > rebase, so that both REBASE_HEAD and CHERRY_PICK_HEAD exist? What > then?
Good point! IMO, REBASE_HEAD should have lower precedence than all the other *_HEADs. It would mean to reorder the entries:
static const char *const other_head[] = {
"MERGE_HEAD", "CHERRY_PICK_HEAD", "REVERT_HEAD", "REBASE_HEAD"
};(and perhaps adjust the error message, too).
-- Hannes