summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/git.scm6
-rw-r--r--tests/guix-build-branch.sh2
2 files changed, 6 insertions, 2 deletions
diff --git a/guix/git.scm b/guix/git.scm
index 85252629fc..de98fed40c 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -172,7 +172,11 @@ OID (roughly the commit hash) corresponding to REF."
(('tag . tag)
(let ((oid (reference-name->oid repository
(string-append "refs/tags/" tag))))
- (object-lookup repository oid))))))
+ ;; Get the commit that the tag at OID refers to. This is not
+ ;; strictly needed, but it's more consistent to always return the
+ ;; OID of a commit.
+ (object-lookup repository
+ (tag-target-id (tag-lookup repository oid))))))))
(reset repository obj RESET_HARD)
(object-id obj))
diff --git a/tests/guix-build-branch.sh b/tests/guix-build-branch.sh
index 0cec7c75db..3d2a7dddf5 100644
--- a/tests/guix-build-branch.sh
+++ b/tests/guix-build-branch.sh
@@ -54,7 +54,7 @@ test "$v0_1_0_drv" != "$orig_drv"
v0_1_0_drv="`guix build guix --with-commit=guile-gcrypt=v0.1.0 -d`"
guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-git.v0.1.0
-guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-8fe64e8 # this is the *tag* ID
+guix gc -R "$v0_1_0_drv" | grep guile-gcrypt-9e3eacd
test "$v0_1_0_drv" != "$latest_drv"
test "$v0_1_0_drv" != "$orig_drv"