diff options
| -rw-r--r-- | src/revparse.c | 3 | ||||
| -rw-r--r-- | tests/refs/revparse.c | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/revparse.c b/src/revparse.c index 5d3ff77ed..9bc28e9fc 100644 --- a/src/revparse.c +++ b/src/revparse.c @@ -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 */ diff --git a/tests/refs/revparse.c b/tests/refs/revparse.c index 5fb758504..0bd2ae5bc 100644 --- a/tests/refs/revparse.c +++ b/tests/refs/revparse.c @@ -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); +} |
