Hi Todd, On Sat, 5 May 2018, Todd Zullinger wrote: > > @@ -430,6 +451,8 @@ int cmd_branch_diff(int argc, const char **argv, const char *prefix) > > struct string_list branch1 = STRING_LIST_INIT_DUP; > > struct string_list branch2 = STRING_LIST_INIT_DUP; > > > > + git_diff_basic_config("diff.color.frag", "magenta", NULL); > > + > > diff_setup(&diffopt); > > diffopt.output_format = DIFF_FORMAT_PATCH; > > diffopt.flags.suppress_diff_headers = 1; > > Should this also (or only) check color.diff.frag? This code is not querying diff.color.frag, it is setting it. Without any way to override it. Having thought about it longer, and triggered by Peff's suggestion to decouple the "reverse" part from the actual color, I fixed this by - *not* setting .frag to magenta, - using the reverse method also to mark outer *hunk headers* (not only the outer -/+ markers). - actually calling git_diff_ui_config()... > I thought that color.diff.* was preferred over diff.color.*, though > that doesn't seem to be entirely true in all parts of the current > codebase. > > In testing this series it seems that setting color.diff > options to change the various colors read earlier in this > patch via diff_get_color_opt, as well as the 'frag' slot, > are ignored. Setting them via diff.color.<slot> does work. In my tests, it did not even work via diff.color.<slot>. But I think I fixed this (at least my local testing confirms this) by calling git_diff_ui_config(). > The later patch adding a man page documents branch-diff as > using `diff.color.*` and points to git-config(1), but the > config docs only list color.diff. In the current form (`git branch --diff`), I refrained from going into *so* much detail ;-) But the gist still holds, and now the code should support it, too. The current work in progress can be pulled as `branch-diff` from https://github.com/dscho/git, if I could ask you to test? Ciao, Dscho