All of lore.kernel.org
 help / color / mirror / Atom feed
From: Charvi Mendiratta <charvi077@gmail.com>
To: Eric Sunshine <sunshine@sunshineco.com>
Cc: Git List <git@vger.kernel.org>,
	Junio C Hamano <gitster@pobox.com>,
	Christian Couder <chriscool@tuxfamily.org>,
	Phillip Wood <phillip.wood@dunelm.org.uk>
Subject: Re: [PATCH v4 2/6] commit: add amend suboption to --fixup to create amend! commit
Date: Thu, 11 Mar 2021 20:54:05 +0530	[thread overview]
Message-ID: <CAPSFM5c8saGs=+OvXvZw-T2jPpdUfkmm9_BZOmZwUo=WO1sdQg@mail.gmail.com> (raw)
In-Reply-To: <CAPig+cRxZFV7DDtnYOxRqEYU4PwXK8gb2HSehDyGorqdgsmoNQ@mail.gmail.com>

On Thu, 11 Mar 2021 at 11:55, Eric Sunshine <sunshine@sunshineco.com> wrote:
>
[...]
> Two style nits:
>
> * opening curly brace of function goes on its own line
>
> * we don't normally have a blank line at the top of the function body
> preceding the declarations
>
> So:
>
>     static int prepare_amend_commit(...)
>     {
>         const  char *buffer, *subject, *fmt;
>

Okay, I will fix it.

> > +       buffer = get_commit_buffer(commit, NULL);
> > +       find_commit_subject(buffer, &subject);
> > +       /*
> > +        * If we amend the 'amend!' commit then we don't want to
> > +        * duplicate the subject line.
> > +        */
> > +       fmt = starts_with(subject, "amend!") ? "%b" : "%B";
> > +       format_commit_message(commit, fmt, sb, ctx);
> > +       unuse_commit_buffer(commit, buffer);
> > +       return 0;
> > +}
>
> What is the significance of this function's return value? At least in
> this patch, the single caller of this function ignores the return
> value, which suggests that the function need not return any value.
> Will a later patch add other possible return values to indicate an
> error or something?
>

No, it will not return another value later. I will remove it from here.

> > @@ -745,15 +764,32 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
> > +               char *fmt = xstrfmt("%s! %%s\n\n", fixup_prefix);
> > +               commit = lookup_commit_reference_by_name(fixup_commit);
> >                 if (!commit)
> > +                       die(_("could not lookup commit %s"), fixup_commit);
> >                 ctx.output_encoding = get_commit_output_encoding();
> > +               format_commit_message(commit, fmt, &sb, &ctx);
> > +               free(fmt);
>
> Nit: it would reduce the cognitive load slightly if `fmt` is prepared
> just before it is used rather than being prepared at the top of the
> block:
>
>     fmt = xstrfmt("%s! %%s\n\n", fixup_prefix);
>     format_commit_message(commit, fmt, &sb, &ctx);
>     free(fmt);
>
> Subjective and not at all worth a re-roll.
>

Agree, will fix it.

> > @@ -1227,6 +1269,34 @@ static int parse_and_validate_options(int argc, const char *argv[],
> > +       if (fixup_message) {
> > +               /*
> > +                * To check if fixup_message that contains ':' is a commit
> > +                * reference for example: --fixup="HEAD^{/^area: string}" or
> > +                * a suboption of `--fixup`.
> > +                *
> > +                * As `amend` suboption contains only alpha character.
> > +                * So check if first non alpha character in fixup_message
> > +                * is ':'.
> > +                */
>
> I have a tough time figuring out what this comment is trying to say,
> and I don't think I would have understood it if Junio had not already
> explained earlier in this thread why this code is as complex as it is
> (rather than using, say, skip_prefix()). Perhaps the entire comment
> can be replaced with this:
>

I admit, this comment seems confusing...

>     Extract <option> (i.e. `amend`) from `--fixup=<option>:<commit>`,
>     if present. To avoid being fooled by a legitimate ":" in <commit>
>     (i.e. `--fixup="HEAD^{/^area: string}"`), <option> must be
>     composed of only alphabetic characters.
>
> Not necessarily worth a re-roll.
>

.. and I think we can reword it as suggested by Junio in patch[v4
3/6], as it seems more clear.

> > +               size_t len = get_alpha_len(fixup_message);
> > +               if (len && fixup_message[len] == ':') {
> > +                       fixup_message[len++] = '\0';
> > +                       fixup_commit = fixup_message + len;
>
> An alternate -- just about as compact and perhaps more idiomatic --
> way to write all this without introducing the new get_alpha_len()
> function:
>
>     char *p = fixup_mesage;
>     while (isalpha(*p))
>         p++;
>     if (p > fixup_message && *p == ':') {
>         *p = '\0';
>         fixup_commit = p + 1;
>
> Subjective and not at all worth a re-roll.
>

Earlier we had discussed[1] keeping a separate helper function, so
that it may re-use it later. But I agree above is easier to get and
compact so I think maybe it will be ok, for this patch series to
replace it with the above and remove the function.

[1] https://lore.kernel.org/git/xmqqpn0xdse8.fsf@gitster.g/

  reply	other threads:[~2021-03-11 15:24 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
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 [this message]
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='CAPSFM5c8saGs=+OvXvZw-T2jPpdUfkmm9_BZOmZwUo=WO1sdQg@mail.gmail.com' \
    --to=charvi077@gmail.com \
    --cc=chriscool@tuxfamily.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.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.