This is as per our discussion[1]. The patches and commit messages are based on Junio's patches that were posted as a reply to <20170212184132.12375-1-gitster@xxxxxxxxx>. As per Matthieu's comments, I have updated the tests, but there is still one thing that is not working: log -@{yesterday} or log -@{2.days.ago} For the other kinds of suffixes, such as -^ or -~ or -~N, the suffix information is first extracted and then, the function get_sha1_1 is called with name="-^" and len=1 (which is the reason for the changed condition inside Patch 4 of this series). For -@{yesterday} kind of queries, the functions dwim_log, interpret_branch_name and interpret_nth_prior_checkout are called. 1. A nice way to solve this would be to extend the replacement of "-" with "@{-1}" one step further. Using strbuf, instead of replacing the whole string with "@{-1}" we would simply replace "-" with "@{-1}" expanding the string appropriately. This will ensure that all the code is inside the function get_sha1_1. The code to do this is in the cover section of the 4th patch in this series. 2. we could go down the dwim_log codepath, and find another suitable place to make the same "-" -> "@{-1}" replacement. In the time that I spent till now, it seems that the suffix information (i.e. @{yesterday} or @{2.days.ago}) is extracted _after_ the branch information has been extracted, so I suspect that we will have to keep that part intact even in this solution. (I am not too sure about this. If this is the preferred solution, then I will dig deeper and find the right place as I did for the first part of this patch) Matthieu: Thanks a lot for your comments on the tests! test_commit has made the tests a lot cleaner! [1]: <xmqqh941ippo.fsf@xxxxxxxxxxxxxxxxxxxxxxxxxxx> Siddharth Kannan (4): 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}" revision.c | 15 ++++--- sha1_name.c | 5 +++ t/t4214-log-shorthand.sh | 106 +++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 120 insertions(+), 6 deletions(-) create mode 100755 t/t4214-log-shorthand.sh -- 2.1.4