diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2023-01-15 16:24:46 +0100 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2023-01-15 16:24:46 +0100 |
| commit | 59833692ed02a7589482c9358466c9b890530776 (patch) | |
| tree | fd5c97173027aa1e0322998acd7d053975860e7f /lisp/magit-remote.el | |
| parent | 2286a6397485f815de70e8105eda90fd0caed4e7 (diff) | |
magit-update-default-branch: New command
Diffstat (limited to 'lisp/magit-remote.el')
| -rw-r--r-- | lisp/magit-remote.el | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lisp/magit-remote.el b/lisp/magit-remote.el index 3b6689a..75958c4 100644 --- a/lisp/magit-remote.el +++ b/lisp/magit-remote.el @@ -85,6 +85,7 @@ has to be used to view and change remote related variables." [("C" "Configure..." magit-remote-configure) ("p" "Prune stale branches" magit-remote-prune) ("P" "Prune stale refspecs" magit-remote-prune-refspecs) + ("b" magit-update-default-branch) (7 "z" "Unshallow remote" magit-remote-unshallow)]] (interactive (list (magit-get-current-remote))) (transient-setup 'magit-remote nil nil :scope remote)) @@ -255,6 +256,37 @@ 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 (autoload 'magit-update-default-branch "magit-remote" nil t) +(transient-define-suffix magit-update-default-branch () + "Update name of the default branch after upstream changed it." + :description "Update default branch" + :inapt-if-not #'magit-get-some-remote + (interactive) + (pcase-let ((`(,_remote ,oldname) (magit--get-default-branch)) + (`( ,remote ,newname) (magit--get-default-branch t))) + (cond + ((equal oldname newname) + (setq oldname + (read-string + (format "Name of default branch is still `%s', %s\n%s" oldname + "but some upstreams might need updating." + "Name of upstream branches to update: "))) + (magit--set-default-branch newname oldname) + (magit-refresh)) + (t + (unless oldname + (setq oldname + (magit-read-other-local-branch + (format "Name of old default branch to be renamed to `%s'" + newname) + newname "master"))) + (cond + ((y-or-n-p (format "Default branch changed from `%s' to `%s' on %s.%s" + oldname newname remote " Do the same locally? ")) + (magit--set-default-branch newname oldname) + (magit-refresh)) + ((user-error "Abort"))))))) + ;;;###autoload (defun magit-remote-unshallow (remote) "Convert a shallow remote into a full one. |
