summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--guix/scripts/system/reconfigure.scm22
1 files changed, 13 insertions, 9 deletions
diff --git a/guix/scripts/system/reconfigure.scm b/guix/scripts/system/reconfigure.scm
index 8c63921e638..402e6d30fc1 100644
--- a/guix/scripts/system/reconfigure.scm
+++ b/guix/scripts/system/reconfigure.scm
@@ -407,15 +407,19 @@ to commits of channels in NEW."
(channel-name old)))
new)))
(and new
- (let ((checkout commit relation
- (update-cached-checkout
- (channel-url new)
- #:ref `(commit . ,(channel-commit new))
- #:starting-commit (channel-commit old)
- #:check-out? #f)))
- (list new
- (channel-commit old) (channel-commit new)
- relation)))))
+ (if (string=? (channel-commit old) (channel-commit new))
+ (list new
+ (channel-commit old) (channel-commit new)
+ 'self)
+ (let ((checkout commit relation
+ (update-cached-checkout
+ (channel-url new)
+ #:ref `(commit . ,(channel-commit new))
+ #:starting-commit (channel-commit old)
+ #:check-out? #f)))
+ (list new
+ (channel-commit old) (channel-commit new)
+ relation))))))
old))
(define* (check-forward-update #:optional