From: Charvi Mendiratta Date: Thu, 11 Mar 2021 15:24:05 GMT Subject: Re: [PATCH v4 2/6] commit: add amend suboption to --fixup to create amend! commit Message-ID: In-Reply-To: On Thu, 11 Mar 2021 at 11:55, Eric Sunshine 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