On Tue, Nov 06 2018, Eric Sunshine wrote: > On Mon, Nov 5, 2018 at 11:17 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: >> Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: >> > This change doesn't update git-format-patch with a --no-patch >> > option. That can be added later similar to how format-patch first >> > learned --range-diff, and then --creation-factor in >> > 8631bf1cdd ("format-patch: add --creation-factor tweak for >> > --range-diff", 2018-07-22). I don't see why anyone would want this for >> > format-patch, it pretty much defeats the point of range-diff. >> >> Does it defeats the point of range-diff to omit the patch part in >> the context of the cover letter? How? >> >> I think the output with this option is a good addition to the cover >> letter as an abbreviated form (as opposed to the full range-diff, >> whose support was added earlier) that gives an overview. > > I had the same response when reading the commit message but didn't > vocalize it. I could see people wanting to suppress the 'patch' part > of the embedded range-diff in a cover letter (though probably not as > commentary in a single-patch). > >> Calling this --[no-]patch might make it harder to integrate it to >> format-patch later, though. I suspect that people would expect >> "format-patch --no-patch ..." to omit both the patch part of the >> range-diff output *AND* the patch that should be applied to the >> codebase (it of course would defeat the point of format-patch, so >> today's format-patch would not pay attention to --no-patch, of >> course). We need to be careful not to break that when it happens. > > Same concern on my side, which is why I was thinking of other, less > confusing, names, such as --summarize or such, though even that is too > general against the full set of git-format-patch options. It could, > perhaps be a separate option, say, "git format-patch > --range-changes=<prev>" or something, which would embed the equivalent > of "git range-diff --no-patch <prev>...<current>" in the cover letter. Maybe this was discussed more when this range-diff format-patch integration was submitted, I wasn't following that closely: Looking at this more carefully it seems like quite a design limitation that we're conflating the options for format-patch itself and for the range-diff invocation it makes. Wouldn't it be better to make all these options e.g. --range-diff-creation-factor=*, --range-diff-no-patch, --range-diff-U1 etc. Now there's no way to say supply a different -U<ctx> for the range-diff & the patches themselves which seems like a semi-common use-case. Doing that seems to be a matter of teaching setup_revisions() to accumulate unknown options, then parsing those into their own diffopts with the "range-diff-" prefix stripped and handing that data off to the range-diff machinery, not the parsed options for range-diff itself as happens now.