git: <git-checkout> allows tags in its 'commit' field.

Fixes <https://bugs.gnu.org/36371>.
Reported by Tobias Geerinckx-Rice <me@tobias.gr>.

* guix/git.scm (git-checkout-compiler): Pass 'tag-or-commit' to
'latest-repository-commit*'.
* doc/guix.texi (Package Transformation Options): Update '--with-commit'
documentation accordingly.
* tests/guix-build-branch.sh: Add test.
This commit is contained in:
Ludovic Courtès 2019-07-26 11:09:56 +02:00
parent c4c2449fea
commit 177fecb57c
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 10 additions and 4 deletions

View file

@ -330,7 +330,7 @@ Log progress and checkout info to LOG-PORT."
git-checkout?
(url git-checkout-url)
(branch git-checkout-branch (default "master"))
(commit git-checkout-commit (default #f))
(commit git-checkout-commit (default #f)) ;#f | tag | commit
(recursive? git-checkout-recursive? (default #f)))
(define* (latest-repository-commit* url #:key ref recursive? log-port)
@ -369,7 +369,7 @@ Log progress and checkout info to LOG-PORT."
(($ <git-checkout> url branch commit recursive?)
(latest-repository-commit* url
#:ref (if commit
`(commit . ,commit)
`(tag-or-commit . ,commit)
`(branch . ,branch))
#:recursive? recursive?
#:log-port (current-error-port)))))