From: Junio C Hamano Date: Thu, 25 Apr 2013 16:37:33 GMT Subject: Re: [BUG] Highly inconsistent diff UI Message-ID: <7va9om5zxu.fsf@alter.siamese.dyndns.org> In-Reply-To: <87li87awwc.fsf@linux-k42r.v.cablecom.net> Thomas Rast writes: > What's the problem with cooking it for a while? You can start using it > immediately. I'm just somewhat annoyed that the syntax is rapidly > converging to Perl-style line noise. Not quite, not quite, and a mild agreement. Adding an obscure feature that may not be useful at all behind a command line option will fall into the "you can afford to cook for a while, you can use it immediately yourself, nobody will get hurt" category. Adding a configuration to turn such a feature by default on already is a more severe problem because we need to adjust and protect scripted Porcelains from getting hurt by an unexpected new behaviour user may trigger by setting such a configuration before it fully cooks, which is annoying maintenance burden for an obscure feature with an unknown value. Piling cruft on syntax is in a totally different league. If not carefully thought out, adding a random new syntax on a whim can paint us into a corner we cannot later get out of, like the ":/" we recently discussed (which does have an escape hatch planned, but imagine a world without one). > I already hate half of the existing syntax, and I cannot remember using > ^! (except while investigating what 'git diff C^!' does and why not), > ^@, @{-N} (only the related 'git checkout -'), @{date} and @{relative}, > ^{}, :/foo, and ^{/foo}, *at all*. > > In fact I had to look up the second half of that list on the manpage. I would have actually expected that people are more familiar with the second half, i.e. @{2.weeks.ago}, @{4} and :/string, than ^!/^@ which I agree were more-or-less "let's add a random cruft on a whim without thinking things through" mistakes.