format-patch: allow --range-diff to apply to a lone-patch
commit40ce41604daf200cdc85abded0133d40faafc2f8
authorEric Sunshine <sunshine@sunshineco.com>
Sun, 22 Jul 2018 09:57:17 +0000 (22 05:57 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 14 Aug 2018 21:27:05 +0000 (14 14:27 -0700)
tree39eebe33daf043ff9033a4728b5c278b86d8e54b
parent8631bf1cdd7296684deebab2708761bfc8085fc2
format-patch: allow --range-diff to apply to a lone-patch

When submitting a revised version of a patch or series, it can be
helpful (to reviewers) to include a summary of changes since the
previous attempt in the form of a range-diff, typically in the cover
letter. However, it is occasionally useful, despite making for a noisy
read, to insert a range-diff into the commentary section of the lone
patch of a 1-patch series.

Therefore, extend "git format-patch --range-diff=<refspec>" to insert a
range-diff into the commentary section of a lone patch rather than
requiring a cover letter.

Implementation note: Generating a range-diff for insertion into the
commentary section of a patch which itself is currently being generated
requires invoking the diffing machinery recursively. However, the
machinery does not (presently) support this since it uses global state.
Consequently, we need to take care to stash away the state of the
in-progress operation while generating the range-diff, and restore it
after.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-format-patch.txt
builtin/log.c
log-tree.c