From: Junio C Hamano Date: Sun, 29 Jul 2007 04:48:15 GMT Subject: Re: [PATCH] Documentation/git-diff: remove -r from --name-status example Message-ID: <7vbqdvolww.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Linus Torvalds writes: >> Does anybody else find this behavior confusing? I can understand why >> diff-tree might not recurse by default, but I wonder if porcelain like >> git-diff should try to be a little more consistent and always recurse. > > I do agree. > > The behaviour is obviously historical, and comes from "git diff" being > just a shell-script wrapper around the different versions of diffing trees > and indexes etc. > > So it makes sense in that historical setting (and realizing that the > "HEAD<->index" and "index<->files" cases were really a totally different > operations), but it makes no sense in the modern world where people don't > even *know* about "git diff-tree", but just use "git diff" for everything. > > So: > >> Something like: > > Ack. Patch looks fine, makes sense, and is obviously good. That makes it two of us. ... eh, excuse me, there is one issue I mention at the end. > It *is* a change in behaviour, though, so I can understand if Junio > doesn't think it's appropriate this late in the 1.5.3 series. One minor objection I do have is that, just as a matter of principle, in order to avoid setting precedence of making a fundamental semantics change in late -rc stage in the game, we should not swallow it. I do not mind if this were clearly a good change. However, I think Jeff's patch always makes it recursive even when the user asks for --raw, which makes it inappropriate for inclusion whether before or after 1.5.3.