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 <[email protected]>
---
 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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to