Hi, On Mon, 26 Jan 2009, Jeff King wrote: > 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html