revparse: support bare '@'

A bare '@' revision syntax represents HEAD.  Support it as such.
This commit is contained in:
Edward Thomson
2022-01-30 22:25:59 -05:00
parent 46885ac9a4
commit add2dabb3c
2 changed files with 10 additions and 0 deletions

View File

@@ -799,6 +799,9 @@ static int revparse(
if (temp_object != NULL)
base_rev = temp_object;
break;
} else if (spec[pos+1] == '\0') {
spec = "HEAD";
break;
}
/* fall through */

View File

@@ -881,3 +881,10 @@ void test_refs_revparse__uneven_sizes(void)
test_object("a65fedf39aefe402d3bb6e24df4d",
"a65fedf39aefe402d3bb6e24df4d4f5fe4547750");
}
void test_refs_revparse__parses_at_head(void)
{
test_id("HEAD", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, GIT_REVSPEC_SINGLE);
test_id("@{0}", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, GIT_REVSPEC_SINGLE);
test_id("@", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, GIT_REVSPEC_SINGLE);
}