On Tue, 27 Feb 2007, Junio C Hamano wrote: > > > > ... Negative object refs really don't make any sense unless you walk > > the object list (or you're "git diff" and know about ranges explicitly). > > If you did not say "(or you're..." part, then I would agree > to this 100%. Well, I personally see (and think) of ".." as a "difference operator". It very much is that, both for "git diff" and for "git log". It's just that the "differences" are different. In "git diff", the difference is obviously the code difference. When you say "git diff a..b" to "show the difference between a and b", you mean "show the patch". When you say "git log a..b", it's *still* a "difference", but now it's the *set* difference of the commits. But "a..b" makes sense to me in both cases, exactly because to me, "a..b" _literally_ means "b - a" or "the difference between a and b". Maybe I'm odd, or maybe it's because I have a fairly strong math background, but I have no trouble at all with a "difference operator" that does different things. In real algebra (what in the US is apparently called "abstract algebra", and not to be confused with just "arithmetic with unknowns"), you do generalized arithmetic operations, and using "+" and "-" and "*" to mean arbitrary things that depend on the stuff you operate on, and doing different things depending on whether you talk about a "set of commits" (log) or talking about a "set of source code" (diff), makes total sense mathematically. > On the other hand, as you earlier said: > > On Fri, 22 Dec 2006,... > > > > I can understand the advantage of a shortcut like "git diff ..next", > > ... > > I can't understand why people complain about this. > > YOU DON'T HAVE TO USE IT. > ... > > But, really, I still don't understand exactly _what_ "diff a..b" even > > means. Can you explain it to me? > > It means exactly the same as "diff a b". > > It's that simple. > > which made me lol, I am very tempted to say: > > It means exactly the same as "show a b". > > It's that simple. No, it really makes no sense at all if you see "a..b" as being a "difference operator". What is the difference between two commits? It's either the difference in code (diff) _or_ it's the difference in sets of commits (log), and either is logical, but which one should "git show" actually show? In NO CASE is it logical to say that "git show a..b" makes the "difference" be the "union" of two commits. That's just confusing and odd. > Back to serious my self, I am wondering if this is a sensible > thing to ask: > > $ git show master...maint > > which your patch now forbids. Again, what would that *mean*? The "..." operator is the "symmetric difference". It has meaning both for code and for commit sets, but which one is "show"? Linus - 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