git: Remove code for Guile-Git < 0.10.0.

* guix/git.scm (commit-relation, commit-descendant?): Remove code for
Guile-Git < 0.10.0.
(set-git-timeouts): Remove code for Guile-Git < 0.9.0.
(report-git-error): Remove code for ancient Guile-Git.

Change-Id: Ie597151ce4c1e5ea006e2783fcc510caed3f566c
This commit is contained in:
Ludovic Courtès 2025-05-14 22:17:12 +02:00
parent 6d6d897b54
commit 86022e994e
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -211,15 +211,9 @@ to verify X.509 host certificates."
when talking to remote Git servers. when talking to remote Git servers.
If one of them is #f, the corresponding default setting is kept unchanged." If one of them is #f, the corresponding default setting is kept unchanged."
;; 'set-server-timeout!' & co. were added in Guile-Git 0.9.0. (when connection-timeout
(define (defined? variable)
(module-defined? (resolve-interface '(git)) variable))
(when (and (defined? 'set-server-connection-timeout!)
connection-timeout)
(set-server-connection-timeout! connection-timeout)) (set-server-connection-timeout! connection-timeout))
(when (and (defined? 'set-server-timeout!) (when read-timeout
read-timeout)
(set-server-timeout! read-timeout))) (set-server-timeout! read-timeout)))
(define* (clone* url directory #:key (verify-certificate? #t)) (define* (clone* url directory #:key (verify-certificate? #t))
@ -374,13 +368,7 @@ dynamic extent of EXP."
(define (report-git-error error) (define (report-git-error error)
"Report the given Guile-Git error." "Report the given Guile-Git error."
;; Prior to Guile-Git commit b6b2760c2fd6dfaa5c0fedb43eeaff06166b3134, (leave (G_ "Git error: ~a~%") (git-error-message error)))
;; errors would be represented by integers.
(match error
((? integer? error) ;old Guile-Git
(leave (G_ "Git error ~a~%") error))
((? git-error? error) ;new Guile-Git
(leave (G_ "Git error: ~a~%") (git-error-message error)))))
(define-syntax-rule (with-git-error-handling body ...) (define-syntax-rule (with-git-error-handling body ...)
(catch 'git-error (catch 'git-error
@ -769,9 +757,7 @@ that of OLD."
(cons head result) (cons head result)
(set-insert head visited))))))) (set-insert head visited)))))))
(define commit-relation (define (commit-relation old new)
(if (resolve-module '(git graph) #:ensure #f) ;Guile-Git >= 0.10.0
(lambda (old new)
"Return a symbol denoting the relation between OLD and NEW, two commit "Return a symbol denoting the relation between OLD and NEW, two commit
objects: 'ancestor (meaning that OLD is an ancestor of NEW), 'descendant, or objects: 'ancestor (meaning that OLD is an ancestor of NEW), 'descendant, or
'unrelated, or 'self (OLD and NEW are the same commit)." 'unrelated, or 'self (OLD and NEW are the same commit)."
@ -785,23 +771,9 @@ objects: 'ancestor (meaning that OLD is an ancestor of NEW), 'descendant, or
((graph-descendant? repository old new) ((graph-descendant? repository old new)
'descendant) 'descendant)
(else 'unrelated)))) (else 'unrelated))))
(lambda (old new) ;remove when Guile-Git 0.10.0 is widespread
(if (eq? old new)
'self
(let ((newest (commit-closure new)))
(if (set-contains? newest old)
'ancestor
(let* ((seen (list->setq (commit-parents new)))
(oldest (commit-closure old seen)))
(if (set-contains? oldest new)
'descendant
'unrelated))))))))
(define commit-descendant? (define (commit-descendant? new old)
(if (resolve-module '(git graph) #:ensure #f) ;Guile-Git >= 0.10.0 "Return true if NEW is the descendant of one of OLD, a list of commits."
(lambda (new old)
"Return true if NEW is the descendant of one of OLD, a list of
commits."
(let ((repository (commit-owner new)) (let ((repository (commit-owner new))
(new (commit-id new))) (new (commit-id new)))
(any (lambda (old) (any (lambda (old)
@ -809,20 +781,6 @@ commits."
(or (graph-descendant? repository new old) (or (graph-descendant? repository new old)
(oid=? old new)))) (oid=? old new))))
old))) old)))
(lambda (new old) ;remove when Guile-Git 0.10.0 is widespread
(let ((old (list->setq old)))
(let loop ((commits (list new))
(visited (setq)))
(match commits
(()
#f)
(_
;; Perform a breadth-first search as this is likely going to
;; terminate more quickly than a depth-first search.
(let ((commits (remove (cut set-contains? visited <>) commits)))
(or (any (cut set-contains? old <>) commits)
(loop (append-map commit-parents commits)
(fold set-insert visited commits)))))))))))
;; ;;