GNU bug report logs - #78030
[PATCH 0/2] Symref support in channels

Previous Next

Package: guix-patches;

Reported by: Romain GARBAGE <romain.garbage <at> inria.fr>

Date: Thu, 24 Apr 2025 08:19:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #11 received at 78030 <at> debbugs.gnu.org (full text, mbox):

From: Romain GARBAGE <romain.garbage <at> inria.fr>
To: 78030 <at> debbugs.gnu.org
Cc: ludovic.courtes <at> inria.fr, Romain GARBAGE <romain.garbage <at> inria.fr>
Subject: [PATCH 2/2] guix: git: Add support for symbolic references.
Date: Thu, 24 Apr 2025 10:19:59 +0200
* guix/git.scm (update-cached-checkout): Add support for symbolic references.

Change-Id: Ib7874e2a30f97e51fdfdc2231a3bc5a3b45a177d
---
 guix/git.scm | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/guix/git.scm b/guix/git.scm
index 01e0918588..a6d921a8cf 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -563,7 +563,7 @@ (define* (update-cached-checkout url
 to REF, and the relation of STARTING-COMMIT relative to the new commit (if
 provided) as returned by 'commit-relation'.
 
-REF is pair whose key is [branch | commit | tag | tag-or-commit ] and value
+REF is pair whose key is [branch | commit | symref | tag | tag-or-commit ] and value
 the associated data: [<branch name> | <sha1> | <tag name> | <string>].
 If REF is the empty list, the remote HEAD is used.
 
@@ -599,6 +599,11 @@ (define* (update-cached-checkout url
                        (string-append "origin/" branch))))
       (_ ref)))
 
+  (define symref-list
+    (match ref
+      (('symref . symref) (list symref))
+      (_ '())))
+
   (with-libgit2
    (set-git-timeouts connection-timeout read-timeout)
    (let* ((cache-exists? (openable-repository? cache-directory))
@@ -613,7 +618,10 @@ (define* (update-cached-checkout url
        (remote-fetch (remote-lookup repository "origin")
                      #:fetch-options (make-default-fetch-options
                                       #:verify-certificate?
-                                      verify-certificate?)))
+                                      verify-certificate?)
+                     ;; Symbolic references are not fetched from the remote by
+                     ;; default.
+                     #:refspecs symref-list))
      (when recursive?
        (update-submodules repository #:log-port log-port
                           #:fetch-options
-- 
2.49.0





This bug report was last modified 27 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.