Thread (32 messages) 32 messages, 5 authors, 2016-06-15

Re: backwards compatibility, was Re: [PATCH v1 1/3] Introduce config variable "diff.primer"

flat view

From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:46:02

Hi,

On Mon, 26 Jan 2009, Jeff King wrote:
On Mon, Jan 26, 2009 at 11:59:46AM +0100, Johannes Schindelin wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help