Re: [PATCH 3/3] format-patch: support --output option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 04, 2020 at 12:27:30PM -0500, Eric Sunshine wrote:

> > diff --git a/builtin/log.c b/builtin/log.c
> > @@ -1942,11 +1942,18 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
> > +       } else if (rev.diffopt.close_file) {
> > +               /*
> > +                * The diff code parsed --output; it has already opened the
> > +                * file, but but we must instruct it not to close after each
> > +                * diff.
> > +                */
> > +               rev.diffopt.close_file = 0;
> >         } else {
> 
> The commit message's justification for supporting --output seems
> reasonable. However, my knee-jerk reaction to the implementation was
> that it feels overly magical and a bit too hacky. I can see the logic
> in it but it also leaves a bad taste when the implementation has to
> "undo" a side-effect of some other piece of code, which makes it feel
> unplanned and fragile. The question which popped into my mind
> immediately was "why not handle --output explicitly via
> builtin_format_patch_options[] along with other first-class options?".
> This review comment may or may not be actionable; it's just expressing
> surprise and a bit of nose-wrinkling I experienced.

I agree it's a bit magical. I didn't really consider writing a new
"--output" option for format-patch, because I came at it from the angle
of "let's unbreak the existing diff --output option". Which isn't
necessarily a defense, but just an explanation.

FWIW, that unsetting of rev.diffopt.close_file is exactly how git-log
does it. So while I agree it's a bit ugly, this is the intended way for
--output to be used across multiple diffs, and with log_tree_commit().
I'd prefer to go this way for now, and if somebody wants to make it less
ugly, they can clean up all of the callers in one go.

Amusingly, 6ea57703f6 (log: prepare log/log-tree to reuse the
diffopt.close_file attribute, 2016-06-22) which introduced this code
foresaw the format-patch bug here.

-Peff



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux