git-rev-parse: parse ".." before simple SHA1's
This fixes "<hexsha1>..*", since get_sha1() will happily ignore any garbage at the end and thus we never got to the ".." check before.
This commit is contained in:
parent
fc4263ce4b
commit
800644c5cb
28
rev-parse.c
28
rev-parse.c
@ -78,20 +78,6 @@ int main(int argc, char **argv)
|
||||
printf("%s\n", arg);
|
||||
continue;
|
||||
}
|
||||
if (!get_sha1(arg, sha1)) {
|
||||
if (no_revs)
|
||||
continue;
|
||||
def = NULL;
|
||||
printf("%s\n", sha1_to_hex(sha1));
|
||||
continue;
|
||||
}
|
||||
if (*arg == '^' && !get_sha1(arg+1, sha1)) {
|
||||
if (no_revs)
|
||||
continue;
|
||||
def = NULL;
|
||||
printf("^%s\n", sha1_to_hex(sha1));
|
||||
continue;
|
||||
}
|
||||
dotdot = strstr(arg, "..");
|
||||
if (dotdot) {
|
||||
unsigned char end[20];
|
||||
@ -111,6 +97,20 @@ int main(int argc, char **argv)
|
||||
}
|
||||
*dotdot = '.';
|
||||
}
|
||||
if (!get_sha1(arg, sha1)) {
|
||||
if (no_revs)
|
||||
continue;
|
||||
def = NULL;
|
||||
printf("%s\n", sha1_to_hex(sha1));
|
||||
continue;
|
||||
}
|
||||
if (*arg == '^' && !get_sha1(arg+1, sha1)) {
|
||||
if (no_revs)
|
||||
continue;
|
||||
def = NULL;
|
||||
printf("^%s\n", sha1_to_hex(sha1));
|
||||
continue;
|
||||
}
|
||||
if (revs_only)
|
||||
continue;
|
||||
def = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user