summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2022-02-03 16:39:26 -0500
committerGitHub <noreply@github.com>2022-02-03 16:39:26 -0500
commit4efd6563cab0caeeeb442b688523a7683cc20174 (patch)
treee2b5daa7e02bd8cf8344378c643d7f5180af2b52
parent8d967d85806161fb8be739f4a80fc816a2b215e6 (diff)
parentadd2dabb3c16aa49b33904dcdc07cd915efc12fa (diff)
downloadlibgit2-4efd6563cab0caeeeb442b688523a7683cc20174.tar.gz
Merge pull request #6196 from libgit2/ethomson/at_revparse
revparse: support bare '@'
-rw-r--r--src/revparse.c3
-rw-r--r--tests/refs/revparse.c7
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);
+}