An updated version of the patch [1]. Discussion here[1] has been taken into account. The test for "-@{yesterday}" is there inside the log-shorthand test, it is commented out for now. I have removed the redundant pieces of code in merge.c and revert.c as mentioned by Matthieu in [2]. As analysed by Junio[3], the same type of code inside checkout.c and worktree.c can not be removed because the appropriate functions inside revision.c are not called in their codepaths. Thanks for your review of the previous versions, Junio and Matthieu! [1]: 1487258054-32292-1-git-send-email-kannan.siddharth12@xxxxxxxxx [2]: vpqbmu768on.fsf@xxxxxxxxxxxx [3]: xmqq1sv1euob.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxx Siddharth Kannan (6): revision.c: do not update argv with unknown option revision.c: swap if/else blocks revision.c: args starting with "-" might be a revision sha1_name.c: teach get_sha1_1 "-" shorthand for "@{-1}" merge.c: delegate handling of "-" shorthand to revision.c:get_sha1 revert.c: delegate handling of "-" shorthand to setup_revisions builtin/merge.c | 2 - builtin/revert.c | 2 - revision.c | 15 +++--- sha1_name.c | 5 ++ t/t3035-merge-hyphen-shorthand.sh | 33 ++++++++++++ t/t3514-revert-shorthand.sh | 25 +++++++++ t/t4214-log-shorthand.sh | 106 ++++++++++++++++++++++++++++++++++++++ 7 files changed, 178 insertions(+), 10 deletions(-) create mode 100755 t/t3035-merge-hyphen-shorthand.sh create mode 100755 t/t3514-revert-shorthand.sh create mode 100755 t/t4214-log-shorthand.sh -- 2.1.4