[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/git-commit 1e40d00: magit-remote-unshallow: New command
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/git-commit 1e40d00: magit-remote-unshallow: New command |
Date: |
Mon, 13 Sep 2021 15:57:27 -0400 (EDT) |
branch: elpa/git-commit
commit 1e40d0021790707f6e88debda04f6b14d9429586
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
magit-remote-unshallow: New command
Closes #4480.
---
lisp/magit-remote.el | 21 ++++++++++++++++++++-
1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/lisp/magit-remote.el b/lisp/magit-remote.el
index a2dd42c..caef16c 100644
--- a/lisp/magit-remote.el
+++ b/lisp/magit-remote.el
@@ -87,7 +87,8 @@ has to be used to view and change remote related variables."
("k" "Remove" magit-remote-remove)]
[("C" "Configure..." magit-remote-configure)
("p" "Prune stale branches" magit-remote-prune)
- ("P" "Prune stale refspecs" magit-remote-prune-refspecs)]]
+ ("P" "Prune stale refspecs" magit-remote-prune-refspecs)
+ (7 "z" "Unshallow remote" magit-remote-unshallow)]]
(interactive (list (magit-get-current-remote)))
(transient-setup 'magit-remote nil nil :scope remote))
@@ -257,6 +258,24 @@ Delete the symbolic-ref \"refs/remotes/<remote>/HEAD\"."
(interactive (list (magit-read-remote "Unset HEAD for remote")))
(magit-run-git "remote" "set-head" remote "--delete"))
+;;;###autoload
+(defun magit-remote-unshallow (remote)
+ "Convert a shallow remote into a full one.
+If only a single refspec is set and it does not contain a
+wildcard, then also offer to replace it with the standard
+refspec."
+ (interactive (list (or (magit-get-current-remote)
+ (magit-read-remote "Delete remote"))))
+ (let ((refspecs (magit-get-all "remote" remote "fetch"))
+ (standard (format "+refs/heads/*:refs/remotes/%s/*" remote)))
+ (when (and (= (length refspecs) 1)
+ (not (string-match-p "\\*" (car refspecs)))
+ (yes-or-no-p (format "Also replace refspec %s with %s? "
+ (car refspecs)
+ standard)))
+ (magit-set standard "remote" remote "fetch"))
+ (magit-git-fetch "--unshallow" remote)))
+
;;; Configure
;;;###autoload (autoload 'magit-remote-configure "magit-remote" nil t)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/git-commit 1e40d00: magit-remote-unshallow: New command,
ELPA Syncer <=