Martin von Zweigbergk <martinvonz@xxxxxxxxx> writes: > I keep forgetting what "git diff A..B" does. "diff" is always about two endpoints, not the path that connects these two endpoints (aka "range"), and when you want to "diff" between two commits, you say "diff A B". "A..B" happens to be accepted as such only by accident (e.g. the old command line parser did not have a reliable way to tell "^A B" and "A..B" apart), not by design. side note: incidentally, now we have rev_cmdline_info support, we could start deprecating "diff A..B" syntax. The special case "git checkout master...branch" is not about specifying a range. The command knows it wants a single point (not two endpoints, nor a range), and A...B as a notation to specify a single point is $(merge-base A B). > I would have much preferred if > it was possible to make the revision parser generally interpret e.g. > "A.^.B" as "the merge base of A and B" (failing if not exactly one). Actually, in many places where the command line parser knows it wants a single point, and never a range, we should be able to apply the "A...B as a notation to specify a single point" rule. Of course you could come up with a symbol other than "..." for that purpose, and migrate the current "git checkout A...B" special case to use that other symbol, but that would be more work and also you would need to retrain existing users. -- 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