From: Jeff King Date: Fri, 20 Feb 2015 01:42:31 GMT Subject: Re: [PATCH] log --decorate: do not leak "commit" color into the next item Message-ID: <20150220014230.GA16124@peff.net> In-Reply-To: On Thu, Feb 19, 2015 at 10:02:12AM -0800, Junio C Hamano wrote: > Jeff King writes: > > > Yeah, I think this is a good fix. I had a vague feeling that we may have > > done this on purpose to let the decoration color "inherit" from the > > existing colors for backwards compatibility, but I don't think that > > could ever have worked (since color.decorate.* never defaulted to > > "normal"). > > Hmph, but that $gmane/191118 talks about giving bold to commit-color > and then expecting for decors to inherit the boldness, a wish I can > understand. But I do not necessarily agree with it---it relies on > that after "(" and ", " there is no reset, > which is not how everything else works. I don't see anybody actually _wanting_ the inheritance. It is mentioned merely as an observation. So yeah, we would break anybody who does: [color "diff"] commit = blue [color "decorate"] branch = normal remoteBranch = normal tag = normal stash = normal HEAD = normal and expects the "blue" to persist automatically. But given that this behaves in the opposite way of every other part of git's color handling, I think we can call it a bug, and people doing that are crazy (they should s/normal/blue/ in the latter config). > So this change at least needs to come with an explanation to people > who are used to and took advantage of this color attribute leakage, > definitely in the log message and preferrably to the documentation > that covers all the color.*. settings, I think. I'd agree it is worth a mention in the log (and possibly release notes), but I don't think it is worth polluting the documentation forever (though explaining that we never inherit might be worth doing, and that is perhaps what you meant). -Peff