On Wed, Aug 20, 2025 at 06:04:40PM -0400, Jeff King wrote: > I'd expect something like this: > > diff --git a/add-interactive.c b/add-interactive.c > index 3e692b47ec..ad8b4907e1 100644 > --- a/add-interactive.c > +++ b/add-interactive.c > @@ -50,6 +50,8 @@ void init_add_i_state(struct add_i_state *s, struct repository *r, > else > s->use_color = > git_config_colorbool("color.interactive", value); > + if (s->use_color < 0 && !repo_config_get_value(r, "color.ui", &value)) > + s->use_color = git_config_colorbool("color.ui", value); > s->use_color = want_color(s->use_color); > > init_color(r, s, "interactive.header", s->header_color, GIT_COLOR_BOLD); > > to work, but it doesn't seem to. Maybe the diff code is independently > looking at git_use_color_default, and we really do need to set the > variable? Ah, indeed. There's yet another bug here. And while adding a test for that, I found a third bug. Yikes. So here's a series which I think addresses everything I found. These bugs have been lurking for a while, but I guess not many people tend to set color variables to anything exotic. [1/4]: stash: pass --no-color to diff-tree child processes [2/4]: add-interactive: respect color.diff for diff coloring [3/4]: add-interactive: manually fall back color config to color.ui [4/4]: contrib/diff-highlight: mention interactive.diffFilter add-interactive.c | 88 ++++++++++++++++++++++------------- add-interactive.h | 7 ++- add-patch.c | 12 ++--- builtin/stash.c | 4 +- contrib/diff-highlight/README | 8 ++++ t/t3701-add-interactive.sh | 51 ++++++++++++++++++++ t/t3904-stash-patch.sh | 10 ++++ 7 files changed, 138 insertions(+), 42 deletions(-) -Peff