Matthieu Moy venit, vidit, dixit 25.04.2013 10:22: > Ramkumar Ramachandra <artag...@gmail.com> writes: > >> Hi, >> >> So, I have three serious itches that would be nice to address: >> >> 1. git reset --hard HEAD~1/ git show HEAD~1 is a very common idiom >> that's unnecessarily cumbersome to type out. We can make the <rev> >> part of <rev>~<n> optional without being ambiguous: you might argue >> that ~<n> normally refers to a /home/<n>, but who uses numbers in >> place of usernames? Even if they do, how can that path possibly be >> inside our repository? > > It's a bit more complex than that: the ~<username> is expanded by the > shell, before Git has any opportunity to guess anything. > > ~1 would be unusable for zsh users and tcsh users at least by default: > > zsh% echo ~1 > zsh: not enough directory stack entries. > > tcsh% echo ~1 > Unknown user: 1. > > (An obvious workaround is to shell-quote it, but as the goal is to have > something easy to type, \~1 or '~1' do not give so much benefit over > HEAD~1) > > That said, it seems to work fine for bash (even if the number is a PID, > it's not expanded), so it may be a good idea to add it as a shortcut, > with a warning in the doc about shell expansion.
I've been using a patch for that for ages without problems; it had been rejected because of the reasons above, plus: Note that even in bash ~1 has a different meaning when your directory stack is non-empty. It's just that I don't use that feature, and bash leaves '~1' as is when there is no stack (you haven't used pushd), whereas zsh errors out. So, I do understand that some consider this semi-broken, even though it's not. But we avoid clashes with shell expansion in most cases for most shells. As for rebase, I still have to look up what "git rebase A B" means. This would be much clearer with a range notation. I seem to recall I even suggested it, but that might have been in a parallel universe. Michael -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html