From 7ea084410cd9d71eb96d4559c045e0eba378d9f6 Mon Sep 17 00:00:00 2001 From: Romain GARBAGE Date: Mon, 22 Sep 2025 11:24:31 +0200 Subject: [PATCH] guix: git: Create/update remote references locally when needed. * guix/git.scm (update-cached-checkout): Create/update remote references locally. Change-Id: Ice761d09eebc4f1275381a4eefbdd679d9b95127 --- guix/git.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/guix/git.scm b/guix/git.scm index 517e3b8ff0a..a1ba4089834 100644 --- a/guix/git.scm +++ b/guix/git.scm @@ -593,16 +593,20 @@ current settings unchanged." ;; left unchanged when cloning and pulling. (set-config-string config "core.autocrlf" "input") - ;; Only fetch remote if it has not been cloned just before. + ;; When using references, fetch remote again when it has just been cloned + ;; just before as the requested reference are not fetched xhen cloning. (when (and cache-exists? + (not (null? symref-list)) (not (reference-available? repository ref))) (remote-fetch (remote-lookup repository "origin") #:fetch-options (make-default-fetch-options #:verify-certificate? verify-certificate?) - ;; Symbolic references are not fetched from the remote by - ;; default. - #:refspecs symref-list)) + ;; Build refspecs from symbolic references so they are + ;; created locally and updated if necessary. + #:refspecs (map (lambda (ref) + (string-append "+" ref ":" ref)) + symref-list))) (when recursive? (update-submodules repository #:log-port log-port #:fetch-options