From: "Ghanshyam Thakkar" <shyamthakkar001@gmail.com>
To: "Junio C Hamano" <gitster@pobox.com>
Cc: <git@vger.kernel.org>, <ps@pks.im>
Subject: Re: [PATCH v2 2/2] add-patch: classify '@' as a synonym for 'HEAD'
Date: Fri, 02 Feb 2024 23:21:50 +0530 [thread overview]
Message-ID: <CYUS8RWV9JY6.15PV2RSRKOXMP@gmail.com> (raw)
In-Reply-To: <xmqqh6iqu73y.fsf@gitster.g>
On Fri Feb 2, 2024 at 10:38 PM IST, Junio C Hamano wrote:
> Ghanshyam Thakkar <shyamthakkar001@gmail.com> writes:
>
> > Currently, (checkout, reset, restore) commands correctly take '@' as a
> > synonym for 'HEAD'. However, in patch mode (-p/--patch), for both '@' and
> > 'HEAD', different prompts/messages are given by the commands mentioned
> > above. This is due to the literal and only string comparison with the word
> > 'HEAD' in run_add_p(). Synonymity between '@' and 'HEAD' is obviously
> > desired, especially since '@' already resolves to 'HEAD'.
> >
> > Therefore, make a new function user_meant_head() which takes the
> > revision string and compares it to 'HEAD' as well as '@'. However, in
> > builtin/checkout.c, there is some logic to convert all revs besides
> > 'HEAD' to hex revs due to 'diff-index', which is used in patch mode
> > machinery, not being able to handle '<a>...<b>' revs. Therefore, in
> > addition to 'HEAD', do not convert '@' as well, so it can be later
> > used in assigning patch_mode_(...)_head.
>
> In this context <a>...<b> names a single rev (not two revs) that is
> the merge base of <a> and <b>. Perhaps
I meant revs which are spelled out in the form of <a>...<b> and not the
<a> and <b> themselves. But I can see how it can be confusing. I will
change it.
> ... there is a logic to convert all command line input rev to
> the raw object name for underlying machinery (e.g., diff-index)
> that does not recognize the <a>...<b> notation, but we'd need to
> leave "HEAD" intact. Now we need to teach that "@" is a synonym
> to "HEAD" to that code, too.
>
> which may be a bit shorter.
Yeah, that is much better and clearer also.
> You decided to use is_rev_head() instead of user_meant_head(), so
> you'd need to update the above description to match, I think.
Will update.
> > - if (rev && new_branch_info->commit && strcmp(rev, "HEAD"))
> > + if (rev && new_branch_info->commit && strcmp(rev, "HEAD") &&
> > + strcmp(rev, "@"))
>
> Shouldn't this be
>
> if (rev && new_branch_info->commit && !is_rev_head(rev))
>
> instead of "HEAD" and "@" spelled out?
is_rev_head() is in add-patch.c and the above is in
builtin/checkout.c and is_rev_head() is not exported. I can also define
it in builtin/checkout.c, but this would be the only instance in that
file which will use it. So, I think it is better to just add
strcmp(rev, "@") to the if condition.
next prev parent reply other threads:[~2024-02-02 17:51 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-28 18:11 [GSOC][RFC PATCH 0/2] add-patch: compare object id Ghanshyam Thakkar
2024-01-28 18:11 ` [RFC PATCH 1/2] add-patch: compare object id instead of literal string Ghanshyam Thakkar
2024-01-29 11:48 ` Patrick Steinhardt
2024-01-30 6:39 ` Ghanshyam Thakkar
2024-01-30 16:42 ` Junio C Hamano
2024-01-29 18:27 ` Junio C Hamano
2024-01-29 18:58 ` Junio C Hamano
2024-01-30 5:35 ` Ghanshyam Thakkar
2024-01-28 18:11 ` [RFC PATCH 2/2] checkout: remove HEAD special case Ghanshyam Thakkar
2024-01-29 11:48 ` Patrick Steinhardt
2024-02-02 15:03 ` [PATCH v2 0/2] add-patch: Support '@' as a synonym for 'HEAD' Ghanshyam Thakkar
2024-02-02 15:03 ` [PATCH v2 1/2] add-patch: remove non-relevant NEEDSWORK comment Ghanshyam Thakkar
2024-02-02 15:03 ` [PATCH v2 2/2] add-patch: classify '@' as a synonym for 'HEAD' Ghanshyam Thakkar
2024-02-02 17:08 ` Junio C Hamano
2024-02-02 17:43 ` Junio C Hamano
2024-02-02 17:53 ` Ghanshyam Thakkar
2024-02-02 17:51 ` Ghanshyam Thakkar [this message]
2024-02-02 17:31 ` [PATCH v2 0/2] add-patch: Support " Ghanshyam Thakkar
2024-02-03 11:25 ` [PATCH v3 0/2] add-patch: " Ghanshyam Thakkar
2024-02-06 22:50 ` [PATCH v4 0/3] '@' as a synonym for 'HEAD' in patch mode Ghanshyam Thakkar
2024-02-11 20:20 ` [PATCH v5 0/2] add-patch: classify '@' as a synonym for 'HEAD' Ghanshyam Thakkar
2024-02-13 0:05 ` [PATCH v6 " Ghanshyam Thakkar
2024-02-14 11:06 ` Phillip Wood
2024-02-13 0:05 ` [PATCH v6 1/2] " Ghanshyam Thakkar
2024-02-13 0:05 ` [PATCH v6 2/2] add -p tests: remove PERL prerequisites Ghanshyam Thakkar
2024-02-11 20:20 ` [PATCH v5 1/2] add-patch: classify '@' as a synonym for 'HEAD' Ghanshyam Thakkar
2024-02-12 21:45 ` Junio C Hamano
2024-02-11 20:20 ` [PATCH v5 2/2] add -p tests: remove PERL prerequisites Ghanshyam Thakkar
2024-02-06 22:50 ` [PATCH v4 1/3] add-patch: remove unnecessary NEEDSWORK comment Ghanshyam Thakkar
2024-02-07 10:51 ` Phillip Wood
2024-02-06 22:50 ` [PATCH v4 2/3] add-patch: classify '@' as a synonym for 'HEAD' Ghanshyam Thakkar
2024-02-07 1:05 ` Junio C Hamano
2024-02-07 10:38 ` Phillip Wood
2024-02-09 15:57 ` Ghanshyam Thakkar
2024-02-06 22:50 ` [PATCH v4 3/3] add -p tests: remove Perl prerequisite Ghanshyam Thakkar
2024-02-07 10:50 ` Phillip Wood
2024-02-07 13:51 ` Phillip Wood
2024-02-07 16:02 ` Junio C Hamano
2024-02-07 16:58 ` Eric Sunshine
2024-02-03 11:25 ` [PATCH v3 1/2] add-patch: remove unnecessary NEEDSWORK comment Ghanshyam Thakkar
2024-02-03 11:25 ` [PATCH v3 2/2] add-patch: classify '@' as a synonym for 'HEAD' Ghanshyam Thakkar
2024-02-03 22:33 ` Junio C Hamano
2024-02-05 15:14 ` Ghanshyam Thakkar
2024-02-05 16:37 ` Phillip Wood
2024-02-05 20:38 ` Ghanshyam Thakkar
2024-02-05 23:07 ` Junio C Hamano
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=CYUS8RWV9JY6.15PV2RSRKOXMP@gmail.com \
--to=shyamthakkar001@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=ps@pks.im \
/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.