Siddharth Kannan <kannan.siddharth12@xxxxxxxxx> writes: > Making a change in sha1_name.c will touch a lot of commands > (setup_revisions is called from everywhere in the codebase), so, I am > still trying to figure out how to do this such that the rest of the > codepath remains unchanged. Changing sha1_name.c is the way to go *if* we want all commands to support this. Just like other ways to name a revision... > I hope that you do not mind this side-effect, but rather, you intended > for this to happen, right? More commands will start supporting this > shorthand, suddenly. (such as format-patch, whatchanged, diff to name > a very few). ... but: the initial implementation of this '-' shorthand was special-casing a single command (IIRC, "git checkout") for which the shorthand was useful. In a previous discussion, I made an analogy with "cd -" (which is the source of inspiration of this shorthand AFAIK): "-" did not magically become "the last visited directory" for all Unix commands, just for "cd". And in this case, I'm happy with it. For example, I never need "mkdir -", and I'm happy I can't "rm -fr -" by mistake. So, it's debatable whether it's a good thing to have all commands support "-". For example, forcing users to explicitly type "git branch -d @{1}" and not providing them with a shortcut might be a good thing. I don't have strong opinion on this: I tend to favor consistency and supporting "-" everywhere goes in this direction, but I think the downsides should be considered too. A large part of the exercice here is to write a good commit message! Another issue with this is: - is also a common way to say "use stdin instead of a file", so before enabling - for "previous branch", we need to make sure it does not introduce any ambiguity. Git does not seem to use "- for stdin" much (most commands able to read from stdin have an explicit --stdin option for that), a quick grep in the docs shows only "git blame --contents -" which is OK because a revision wouldn't make sense here anyway. -- Matthieu Moy http://www-verimag.imag.fr/~moy/