emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/git-commit 1e8b9f5 2/2: magit-branch-delete: Improve other


From: ELPA Syncer
Subject: [nongnu] elpa/git-commit 1e8b9f5 2/2: magit-branch-delete: Improve other branch choice
Date: Fri, 3 Dec 2021 14:58:10 -0500 (EST)

branch: elpa/git-commit
commit 1e8b9f5d492b920a2b8497fc1377348bf08920b4
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>

    magit-branch-delete: Improve other branch choice
    
    When offering to checkout another branch in response to the user
    requesting the deletion of the current branch, then propose that
    the upstream branch is checked out instead of the main branch if
    that is reasonable, i.e. if it actually exists.
    
    Closes #4549.
---
 lisp/magit-branch.el | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/lisp/magit-branch.el b/lisp/magit-branch.el
index 51099fa..70d853c 100644
--- a/lisp/magit-branch.el
+++ b/lisp/magit-branch.el
@@ -620,16 +620,19 @@ defaulting to the branch at point."
      (t ; And now for something completely different.
       (let* ((branch (car branches))
              (prompt (format "Branch %s is checked out.  " branch))
-             (main (magit-main-branch)))
+             (target (magit-get-upstream-branch)))
         (when (equal branch (magit-get-current-branch))
-          (pcase (if (or (equal branch main)
-                         (not main))
+          (when (or (equal branch target)
+                    (not target))
+            (setq target (magit-main-branch)))
+          (pcase (if (or (equal branch target)
+                         (not target))
                      (magit-read-char-case prompt nil
                        (?d "[d]etach HEAD & delete" 'detach)
                        (?a "[a]bort"                'abort))
                    (magit-read-char-case prompt nil
                      (?d "[d]etach HEAD & delete" 'detach)
-                     (?c (format "[c]heckout %s & delete" main) 'main)
+                     (?c (format "[c]heckout %s & delete" target) 'target)
                      (?a "[a]bort" 'abort)))
             (`detach (unless (or (equal force '(4))
                                  (member branch force)
@@ -638,13 +641,13 @@ defaulting to the branch at point."
                          "Delete unmerged branch %s" ""
                          nil (list branch)))
                      (magit-call-git "checkout" "--detach"))
-            (`main   (unless (or (equal force '(4))
+            (`target (unless (or (equal force '(4))
                                  (member branch force)
-                                 (magit-branch-merged-p branch main))
+                                 (magit-branch-merged-p branch target))
                        (magit-confirm 'delete-unmerged-branch
                          "Delete unmerged branch %s" ""
                          nil (list branch)))
-                     (magit-call-git "checkout" main))
+                     (magit-call-git "checkout" target))
             (`abort  (user-error "Abort")))
           (setq force t))
         (magit-branch-maybe-delete-pr-remote branch)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]