All of lore.kernel.org
 help / color / mirror / Atom feed
From: Charvi Mendiratta <charvi077@gmail.com>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: 20210217072904.16257-1-charvi077@gmail.com,
	Git List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>,
	Christian Couder <christian.couder@gmail.com>,
	Phillip Wood <phillip.wood123@gmail.com>,
	Christian Couder <chriscool@tuxfamily.org>,
	Phillip Wood <phillip.wood@dunelm.org.uk>
Subject: Re: [PATCH v3 2/6] commit: add amend suboption to --fixup to create amend! commit
Date: Thu, 4 Mar 2021 00:51:23 +0530	[thread overview]
Message-ID: <CAPSFM5cECFPk180G3aOdqnZ09FogwsBzC_WwO4OFutsjnTXQ7w@mail.gmail.com> (raw)
In-Reply-To: <CAPig+cSJCSLBDumaXvnkdSBTATs62h9EfgtgJu0O7R_PJEumCg@mail.gmail.com>

Hi Eric,

On Wed, 3 Mar 2021 at 13:16, Eric Sunshine <sunshine@sunshineco.com> wrote:
>
> On Wed, Mar 3, 2021 at 2:37 AM Charvi Mendiratta <charvi077@gmail.com> wrote:
> > On Tue, 2 Mar 2021 at 03:45, Eric Sunshine <sunshine@sunshineco.com> wrote:
> > > > +       if (starts_with(sb->buf, "amend! amend!"))
> > >
> > > Is the content of the incoming strbuf created mechanically so that we
> > > know that there will only ever be one space between the two "amend!"
> > > literals? If not, then this starts_with() check feels fragile.
> >
> > Yes, so for preparing each "amend!" commit we add prefix "amend! '' to
> > the subject of the specific commit. And further if we amend the
> > "amend!" commit then this above code is checked before creating a
> > "amend! amend!" commit for the user. So I think maybe we don't need to
> > check for multiple spaces ?
>
> Okay, if this is guaranteed to be created mechanically, then what you
> have should work, though it may be a good idea to add an in-code
> comment stating the reason it is okay to expect just the single space.
>
> The alternative would be to avoid having "amend! amend!" in the first
> place.

Agree. I think we can do this...

> I didn't trace through the code carefully so I don't know if it
> is possible, but would it make sense for the caller(s) to check before
> adding a second "amend!", thus eliminating the need to do so here?
> (Perhaps I'm misunderstanding, but the above code almost feels like a
> case of "whoops, we did something undesirable, so let's undo it.".)

I looked into it and got another alternative, to extend the same
prepare_amend_commit() function and replace the check condition of
if (starts_with(sb->buf, "amend! amend!")) with the code as below :

const char *buffer = get_commit_buffer(commit, NULL);
const char *subject;
find_commit_subject(buffer, &subject);
if (starts_with(subject, "amend!"))
const char *fmt = starts_with(subject, "amend!") ? "%b" : "%B";
format_commit_message(commit, fmt, sb, ctx);
unuse_commit_buffer(commit, buffer);

So, now it checks the commit subject here only. Otherwise as you have
suggested above to check before adding a second "amend!", I think that
can result in confusion as currently both "fixup!" and "amend!"
commits (commit's subject) are prepared by same code and further for
"amend!" commit as we write a commit message body also so we used
prepare_amend_commit() to do that stuff.

  reply	other threads:[~2021-03-04  0:23 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-01  8:45 [PATCH v3 0/6][Outreachy] commit: Implementation of "amend!" commit Charvi Mendiratta
2021-03-01  8:45 ` [PATCH v3 1/6] sequencer: export subject_length() Charvi Mendiratta
2021-03-01 20:25   ` Eric Sunshine
2021-03-03  6:26     ` Junio C Hamano
2021-03-03  7:35     ` Charvi Mendiratta
2021-03-01  8:45 ` [PATCH v3 2/6] commit: add amend suboption to --fixup to create amend! commit Charvi Mendiratta
2021-03-01 18:34   ` Junio C Hamano
2021-03-03  7:32     ` Charvi Mendiratta
2021-03-01 22:15   ` Eric Sunshine
2021-03-01 22:32     ` Junio C Hamano
2021-03-01 22:47       ` Eric Sunshine
2021-03-03  7:42         ` Charvi Mendiratta
2021-03-03  7:41       ` Charvi Mendiratta
2021-03-03  7:57         ` Eric Sunshine
2021-03-03 19:21           ` Charvi Mendiratta
2021-03-04  0:58           ` Junio C Hamano
2021-03-04  9:01             ` Charvi Mendiratta
2021-03-03  7:37     ` Charvi Mendiratta
2021-03-03  7:46       ` Eric Sunshine
2021-03-03 19:21         ` Charvi Mendiratta [this message]
2021-03-01  8:45 ` [PATCH v3 3/6] commit: add a reword suboption to --fixup Charvi Mendiratta
2021-03-01 18:41   ` Junio C Hamano
2021-03-03  7:33     ` Charvi Mendiratta
2021-03-01 22:36   ` Eric Sunshine
2021-03-03  7:41     ` Charvi Mendiratta
2021-03-01  8:45 ` [PATCH v3 4/6] t7500: add tests for --fixup=[amend|reword] options Charvi Mendiratta
2021-03-02  5:43   ` Eric Sunshine
2021-03-03  6:28     ` Junio C Hamano
2021-03-03  7:43     ` Charvi Mendiratta
2021-03-01  8:45 ` [PATCH v3 5/6] t3437: use --fixup with options to create amend! commit Charvi Mendiratta
2021-03-01  8:45 ` [PATCH v3 6/6] doc/git-commit: add documentation for fixup=[amend|reword] options Charvi Mendiratta
2021-03-01 18:44   ` Junio C Hamano
2021-03-03  7:33     ` Charvi Mendiratta
2021-03-02  6:39   ` Eric Sunshine
2021-03-03  7:43     ` Charvi Mendiratta
2021-03-03  8:18       ` Eric Sunshine
2021-03-03 19:22         ` Charvi Mendiratta
2021-03-04  1:05         ` Junio C Hamano
2021-03-04  9:00           ` Charvi Mendiratta
2021-03-04 22:18             ` Junio C Hamano
2021-03-05  6:14               ` Charvi Mendiratta
2021-03-05 18:25                 ` Junio C Hamano
2021-03-06  4:13                   ` Charvi Mendiratta
2021-03-06  6:11                     ` Eric Sunshine
2021-03-01 18:45 ` [PATCH v3 0/6][Outreachy] commit: Implementation of "amend!" commit Junio C Hamano
2021-03-03  7:33   ` Charvi Mendiratta
2021-03-10 19:43 ` [PATCH v4 " Charvi Mendiratta
2021-03-11  8:06   ` Eric Sunshine
2021-03-11 15:24     ` Charvi Mendiratta
2021-03-13 13:40   ` [PATCH v5 " Charvi Mendiratta
2021-03-13 13:40   ` [PATCH v5 1/6] sequencer: export and rename subject_length() Charvi Mendiratta
2021-03-13 13:40   ` [PATCH v5 2/6] commit: add amend suboption to --fixup to create amend! commit Charvi Mendiratta
2021-03-14  1:32     ` Eric Sunshine
2021-03-13 13:40   ` [PATCH v5 3/6] commit: add a reword suboption to --fixup Charvi Mendiratta
2021-03-13 13:40   ` [PATCH v5 4/6] t7500: add tests for --fixup=[amend|reword] options Charvi Mendiratta
2021-03-13 13:40   ` [PATCH v5 5/6] t3437: use --fixup with options to create amend! commit Charvi Mendiratta
2021-03-13 13:40   ` [PATCH v5 6/6] doc/git-commit: add documentation for fixup=[amend|reword] options Charvi Mendiratta
2021-03-14  1:10     ` Eric Sunshine
2021-03-14 13:57       ` Charvi Mendiratta
2021-03-15  7:54   ` [PATCH v6 0/6][Outreachy] commit: Implementation of "amend!" commit Charvi Mendiratta
2021-03-19  0:52     ` Junio C Hamano
2021-03-19  3:16       ` Eric Sunshine
2021-03-19 14:10         ` Charvi Mendiratta
2021-03-15  7:54   ` [PATCH v6 1/6] sequencer: export and rename subject_length() Charvi Mendiratta
2021-03-15  7:54   ` [PATCH v6 2/6] commit: add amend suboption to --fixup to create amend! commit Charvi Mendiratta
2021-03-15  7:54   ` [PATCH v6 3/6] commit: add a reword suboption to --fixup Charvi Mendiratta
2021-03-15  7:54   ` [PATCH v6 4/6] t7500: add tests for --fixup=[amend|reword] options Charvi Mendiratta
2021-03-15  7:54   ` [PATCH v6 5/6] t3437: use --fixup with options to create amend! commit Charvi Mendiratta
2021-03-15  7:54   ` [PATCH v6 6/6] doc/git-commit: add documentation for fixup=[amend|reword] options Charvi Mendiratta
2021-03-10 19:43 ` [PATCH v4 1/6] sequencer: export and rename subject_length() Charvi Mendiratta
2021-03-10 19:43 ` [PATCH v4 2/6] commit: add amend suboption to --fixup to create amend! commit Charvi Mendiratta
2021-03-11  6:25   ` Eric Sunshine
2021-03-11 15:24     ` Charvi Mendiratta
2021-03-11 17:07       ` Eric Sunshine
2021-03-11 17:51         ` Charvi Mendiratta
2021-03-14  2:25         ` Junio C Hamano
2021-03-14 13:58           ` Charvi Mendiratta
2021-03-14 22:43             ` Junio C Hamano
2021-03-14 23:07               ` Eric Sunshine
2021-03-15  7:59                 ` Charvi Mendiratta
2021-03-15  8:16                   ` Eric Sunshine
2021-03-15  9:35                     ` Charvi Mendiratta
2021-03-10 19:43 ` [PATCH v4 3/6] commit: add a reword suboption to --fixup Charvi Mendiratta
2021-03-11  0:31   ` Junio C Hamano
2021-03-11  4:01     ` Charvi Mendiratta
2021-03-11  5:37       ` Junio C Hamano
2021-03-11  6:37         ` Eric Sunshine
2021-03-11 15:23         ` Charvi Mendiratta
2021-03-10 19:43 ` [PATCH v4 4/6] t7500: add tests for --fixup=[amend|reword] options Charvi Mendiratta
2021-03-10 19:43 ` [PATCH v4 5/6] t3437: use --fixup with options to create amend! commit Charvi Mendiratta
2021-03-10 19:43 ` [PATCH v4 6/6] doc/git-commit: add documentation for fixup=[amend|reword] options Charvi Mendiratta
2021-03-11  0:30   ` Junio C Hamano
2021-03-11  4:02     ` Charvi Mendiratta
2021-03-11  7:48   ` Eric Sunshine
2021-03-11 15:24     ` Charvi Mendiratta

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=CAPSFM5cECFPk180G3aOdqnZ09FogwsBzC_WwO4OFutsjnTXQ7w@mail.gmail.com \
    --to=charvi077@gmail.com \
    --cc=20210217072904.16257-1-charvi077@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=phillip.wood123@gmail.com \
    --cc=phillip.wood@dunelm.org.uk \
    --cc=sunshine@sunshineco.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 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.