From: Kenny Lee Sin Cheong Date: Mon, 30 Mar 2015 17:41:52 GMT Subject: [PATCH/RFC 1/4] Add "-" as @{-1} support for the rev-parse command Message-ID: <1427737315-7229-2-git-send-email-kenny.lee28@gmail.com> In-Reply-To: <1427737315-7229-1-git-send-email-kenny.lee28@gmail.com> Allows the use of the "-" shorthand notation, including use with revision ranges. If we plan to allow "-" as a stand in every where a revision is allowed, then "-" would also need to be usable in plumbing commands, for writing tests, for example. Checks if the argument can be interpreted as a revision range first before checking for flags. This saves us from having to check that something that begins with "-" does not get checked as a possible flag. Signed-off-by: Kenny Lee Sin Cheong --- builtin/rev-parse.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/builtin/rev-parse.c b/builtin/rev-parse.c index 3626c61..8da95b5 100644 --- a/builtin/rev-parse.c +++ b/builtin/rev-parse.c @@ -553,6 +553,25 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) continue; } + /* Not a flag argument */ + if (try_difference(arg)) + continue; + if (try_parent_shorthands(arg)) + continue; + name = arg; + type = NORMAL; + if (*arg == '^') { + name++; + type = REVERSED; + } + if (!get_sha1_with_context(name, flags, sha1, &unused)) { + if (verify) + revs_count++; + else + show_rev(type, sha1, name); + continue; + } + if (*arg == '-') { if (!strcmp(arg, "--")) { as_is = 2; @@ -810,24 +829,6 @@ int cmd_rev_parse(int argc, const char **argv, const char *prefix) continue; } - /* Not a flag argument */ - if (try_difference(arg)) - continue; - if (try_parent_shorthands(arg)) - continue; - name = arg; - type = NORMAL; - if (*arg == '^') { - name++; - type = REVERSED; - } - if (!get_sha1_with_context(name, flags, sha1, &unused)) { - if (verify) - revs_count++; - else - show_rev(type, sha1, name); - continue; - } if (verify) die_no_single_rev(quiet); if (has_dashdash) -- 2.3.3.203.g8ffb468.dirty