Re: backwards compatibility, was Re: [PATCH v1 1/3] Introduce config variable "diff.primer"
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 26, 2009, 11:28 UTC
- Message-ID
- <alpine.DEB.1.00.0901261220300.14855@racer>
- In-Reply-To
- <20090126111605.GB19993@coredump.intra.peff.net>
Hi,
On Mon, 26 Jan 2009, Jeff King wrote:
Show 9 quoted lines
> On Mon, Jan 26, 2009 at 11:59:46AM +0100, Johannes Schindelin wrote: > > > Just a reminder: we are very conservative when it comes to breaking > > backwards compatibility. For example, people running (but not upgrading) > > gitweb who want to upgrade Git may rightfully expect their setups not to > > be broken for a long time, if ever. > > Are you aware that gitweb no longer calls "git diff", exactly because > of problems caused by calling a porcelain from a script?
As I said: do you really expect people not to forget to upgrade gitweb manually when they do "sudo make install" with a new Git version?
> I don't want to break existing setups, either. But at some point you > have to say "this is porcelain, so don't rely on there not being any > user-triggered effects in its behavior". If porcelain is cast in stone, > then what is the point in differentiating plumbing from porcelain?
Two points there:
- with gitweb, we were the offenders ourselves. So we should give the users of gitweb at least _some_ slack.
- Concretely for the "porcelain" git diff: This workflow
git diff > my-patch <attach and send to somebody>
is probably pretty wide spread. And it is okay, a user is not a script, they are very much allowed to use porcelain. And we _would_ break expectations there.
Now, I have another two, fundamental problems with the diff options defaults: you are restricting the thing to _one_ set of options, and when somebody wants to run without those options, she has to actively _undo_ them.
Remember, sometimes you need another set of options. Like, when I send mail to a Git user, I want "-M -C -C", when I send mail to a non-Git user, I do not want any additional options (and try to undo "-M -C -C" on the command line, good luck), and sometimes it is much easier to see what happened with a word diff.
So what I need are three different sets of diff options.
Guess how well that works with aliases -- we are talking command line here after all, right?
Ciao, Dscho