This builds on top of sb/range-diff-colors, which builds on js/range-diff. As Thomas seemed happy with the range-diff and said "and fwiw I didn't think there's anything major that needs to be addressed." I found it reasonable to build more on top of those series. [1] https://public-inbox.org/git/20180729215053.GE9955@xxxxxxxxxxxxxxxxxxxxxxxx/ It can also be found via git fetch https://github.com/stefanbeller/git moved-in-patches This series provides for 2 goals, which share a common base refactoring: The refactoring part is to allow the diff machinery to prefix old/new/context lines with prefixes as chosen by the user. The first feature is to slightly adapt coloring of range-diff to have the file markers --- a/diff.c +++ b/diff.c be shown as context color. This is done by using custom prefixes for old/new/context lines in the inner diffs and indenting all other lines instead by a white space indicating it to be context. The second feature is more RFC-ish in nature and just exposes the mechanism to the user in a meaning-ful way. All of the diff family (including format-patch) as well as apply/am can use */~ instead of +/- for moved lines of code. Thanks, Stefan Stefan Beller (7): diff.c: emit_line_0 to take string instead of first sign diff.c: add --output-indicator-{new, old, context} range-diff: make use of different output indicators range-diff: indent special lines as context diff.c: rename color_moved to markup_moved diff.c: factor determine_line_color out of emit_diff_symbol_from_struct diff/am: enhance diff format to use */~ for moved lines apply.c | 12 +++ diff.c | 180 ++++++++++++++++++++++++++---------------- diff.h | 10 ++- range-diff.c | 17 +++- t/t3206-range-diff.sh | 12 +-- 5 files changed, 153 insertions(+), 78 deletions(-) -- 2.18.0.597.ga71716f1ad-goog