On Wed, Jun 25, 2008 at 01:38:30PM +0100, Johannes Schindelin wrote: > > $ git config alias.switch checkout > > $ git switch topic > > > > Hm? Notice that the command even reports back: > > > > Switched to branch "topic" > > ^^^^^^^^ > > Nice. And now my friend says "why does this braindamaged Git not have > that command by _default_? Hmm? It is _just as braindamaged_ as CVS!" I agree that "git switch" would be a great alias to have for "git checkout". It is much more intuitive; traditionally, the issue has always been that it's not so intuitive for existing git users, who have gotten used to the existing quirks, and it people won't want to break things for the existing users. (There are analogues to this is the English language --- why is it that "though", "through", "plough", "cough", "hough", or "tough" don't rhyme[1]?) [1] http://www.mipmip.org/tidbits/pronunciation.shtml > And I would not have anything reasonable for my defense. Neither does the English language; but just try changing it! "Historical reasons" is for better or for worse a very strong argument. > Because Git _should_ have an intuitive command to switch branches by > default. "git checkout" just does not fly, especially given that it can > be used to revert single files (which "git revert" should know how to, but > does not, see > http://mid.gmane.org/7vlk8wshii.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxx). I used to argue for this, but gave up, because no one seemed to agree with me. So now I just have the following in /home/tytso/bin/git-revert-file and I am very happy: #!/bin/sh # prefix=$(git rev-parse --show-prefix) for i in $* do git show HEAD:$prefix$i > $i done It makes "git revert-file <file1> <file2> <file3>" do the right thing. Yeah, it doesn't do enough error checking, and it doesn't handle filenames with spaces, and there are probably other corner cases it doesn't get right, but it's been enough to keep me happy. :-) If someone wants to take the above and turn it into git-rename.sh and try to submit it to the git tree --- they are welcome to do it. Or heck, if Junio is willing to commit that it that with the appropriate cleanups it would be accepted, I'd be willing to do the work. I just got tired of arguing that the concept of "git revert-file" was in fact useful, and so its existence could be justified, which IIRC was disputed the last time we went around this topic. I know I wanted it, though, so I implemented it for myself. > I _do_ see a cause of confusion here, _even_ if I know Git pretty well. As do I.... I think the expert git users have just leared how to work around it, either by learning the non-linearities in the UI, or by our own private hacks or aliases. - Ted -- 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