branch: elpa/magit
commit ed67642a25e8aa6fc5c5438fb1ddb6d7c7e94ddf
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>
Improve indentation of cond
Emacs 31.1 adds variable `lisp-indent-local-overrides'.
---
.dir-locals.el | 5 +-
lisp/git-commit.el | 44 ++--
lisp/git-rebase.el | 84 +++----
lisp/magit-base.el | 52 ++--
lisp/magit-branch.el | 226 ++++++++---------
lisp/magit-clone.el | 12 +-
lisp/magit-commit.el | 114 ++++-----
lisp/magit-diff.el | 650 ++++++++++++++++++++++++------------------------
lisp/magit-extras.el | 126 +++++-----
lisp/magit-fetch.el | 8 +-
lisp/magit-files.el | 20 +-
lisp/magit-git.el | 80 +++---
lisp/magit-log.el | 48 ++--
lisp/magit-mode.el | 50 ++--
lisp/magit-process.el | 40 +--
lisp/magit-pull.el | 18 +-
lisp/magit-push.el | 60 ++---
lisp/magit-refs.el | 60 ++---
lisp/magit-remote.el | 44 ++--
lisp/magit-section.el | 300 +++++++++++-----------
lisp/magit-sequence.el | 222 ++++++++---------
lisp/magit-status.el | 54 ++--
lisp/magit-submodule.el | 28 +--
lisp/magit-tag.el | 32 +--
lisp/magit-wip.el | 74 +++---
lisp/magit-worktree.el | 20 +-
26 files changed, 1236 insertions(+), 1235 deletions(-)
diff --git a/.dir-locals.el b/.dir-locals.el
index 5098510a823..2044c5dc352 100644
--- a/.dir-locals.el
+++ b/.dir-locals.el
@@ -1,11 +1,12 @@
((nil
(indent-tabs-mode . nil))
+ (emacs-lisp-mode
+ (checkdoc-allow-quoting-nil-and-t . t)
+ (lisp-indent-local-overrides . ((cond . 0))))
(makefile-mode
(indent-tabs-mode . t)
(mode . outline-minor)
(outline-regexp . "#\\(#+\\)"))
- (emacs-lisp-mode
- (checkdoc-allow-quoting-nil-and-t . t))
(git-commit-mode
(git-commit-major-mode . git-commit-elisp-text-mode))
(".github/PULL_REQUEST_TEMPLATE"
diff --git a/lisp/git-commit.el b/lisp/git-commit.el
index aee3646522e..c2133c03dee 100644
--- a/lisp/git-commit.el
+++ b/lisp/git-commit.el
@@ -159,14 +159,14 @@ full loading."
(remove-hook 'after-change-major-mode-hook
#'git-commit-setup-font-lock-in-buffer)))
(cond
- (global-git-commit-mode
- (add-hook 'find-file-hook #'git-commit-setup-check-buffer)
- (add-hook 'after-change-major-mode-hook
- #'git-commit-setup-font-lock-in-buffer))
- (t
- (remove-hook 'find-file-hook #'git-commit-setup-check-buffer)
- (remove-hook 'after-change-major-mode-hook
- #'git-commit-setup-font-lock-in-buffer))))
+ (global-git-commit-mode
+ (add-hook 'find-file-hook #'git-commit-setup-check-buffer)
+ (add-hook 'after-change-major-mode-hook
+ #'git-commit-setup-font-lock-in-buffer))
+ (t
+ (remove-hook 'find-file-hook #'git-commit-setup-check-buffer)
+ (remove-hook 'after-change-major-mode-hook
+ #'git-commit-setup-font-lock-in-buffer))))
(defcustom git-commit-major-mode #'text-mode
"Major mode used to edit Git commit messages.
@@ -915,20 +915,20 @@ completion candidates. The input must have the form
\"NAME <EMAIL>\"."
(setq leading-comment-end (point))
(goto-char (point-max))
(cond
- ;; Look backwards for existing trailers.
- ((re-search-backward (git-commit--trailer-regexp) nil t)
- (end-of-line)
- (insert ?\n string)
- (unless (= (char-after) ?\n)
- (insert ?\n)))
- ;; Or place the new trailer right before the first non-leading
- ;; comments.
- (t
- (while (re-search-backward (concat "^" comment-start)
- leading-comment-end t))
- (unless (looking-back "\n\n" nil)
- (insert ?\n))
- (insert string ?\n))))
+ ;; Look backwards for existing trailers.
+ ((re-search-backward (git-commit--trailer-regexp) nil t)
+ (end-of-line)
+ (insert ?\n string)
+ (unless (= (char-after) ?\n)
+ (insert ?\n)))
+ ;; Or place the new trailer right before the first non-leading
+ ;; comments.
+ (t
+ (while (re-search-backward (concat "^" comment-start)
+ leading-comment-end t))
+ (unless (looking-back "\n\n" nil)
+ (insert ?\n))
+ (insert string ?\n))))
(unless (or (eobp) (= (char-after) ?\n))
(insert ?\n))))
diff --git a/lisp/git-rebase.el b/lisp/git-rebase.el
index b019bc50893..07c11d93090 100644
--- a/lisp/git-rebase.el
+++ b/lisp/git-rebase.el
@@ -399,23 +399,23 @@ of its action type."
(with-slots (action-type target trailer comment-p)
(git-rebase-current-line)
(cond
- ((and action (eq action-type 'commit))
- (let ((inhibit-read-only t))
- (magit-delete-line)
- (insert (concat action " " target " "))
- (when (magit-git-version>= "2.50.0")
- (insert "# "))
- (insert (concat trailer "\n"))))
- ((and (not action) action-type)
- (let ((inhibit-read-only t))
- (if comment-p
- (delete-region beg (+ beg 2))
- (insert comment-start " ")))
- (forward-line))
- ;; In the case of --rebase-merges, commit lines may have
- ;; other lines with other action types, empty lines, and
- ;; "Branch" comments interspersed. Move along.
- ((forward-line)))))
+ ((and action (eq action-type 'commit))
+ (let ((inhibit-read-only t))
+ (magit-delete-line)
+ (insert (concat action " " target " "))
+ (when (magit-git-version>= "2.50.0")
+ (insert "# "))
+ (insert (concat trailer "\n"))))
+ ((and (not action) action-type)
+ (let ((inhibit-read-only t))
+ (if comment-p
+ (delete-region beg (+ beg 2))
+ (insert comment-start " ")))
+ (forward-line))
+ ;; In the case of --rebase-merges, commit lines may have
+ ;; other lines with other action types, empty lines, and
+ ;; "Branch" comments interspersed. Move along.
+ ((forward-line)))))
(goto-char (cond (git-rebase-auto-advance end-marker)
(pt-below-p (1- end-marker))
(beg)))
@@ -435,15 +435,15 @@ point or mark. If the region isn't active and FALLBACK is
non-nil, return the beginning and end of the current rebase line,
if any."
(cond
- ((use-region-p)
- (let ((beg (magit--bol-position (region-beginning)))
- (end (magit--eol-position (region-end))))
- (and (git-rebase-line-p beg)
- (git-rebase-line-p end)
- (list beg (1+ end)))))
- ((and fallback (git-rebase-line-p))
- (list (line-beginning-position)
- (1+ (line-end-position))))))
+ ((use-region-p)
+ (let ((beg (magit--bol-position (region-beginning)))
+ (end (magit--eol-position (region-end))))
+ (and (git-rebase-line-p beg)
+ (git-rebase-line-p end)
+ (list beg (1+ end)))))
+ ((and fallback (git-rebase-line-p))
+ (list (line-beginning-position)
+ (1+ (line-end-position))))))
(defun git-rebase-move-line-down (n)
"Move the current commit (or command) N lines down.
@@ -875,22 +875,22 @@ except for the \"pick\" command."
(replace-match (make-string 10 ?\s) t t nil 1))
(setq cmd (intern (concat "git-rebase-" (match-str 4))))
(cond
- ((not (fboundp cmd))
- (delete-line))
- ((eq cmd 'git-rebase-fixup)
- (delete-line)
- (git-rebase--insert-descriptions
git-rebase-fixup-descriptions))
- (t
- (add-text-properties (line-beginning-position)
- (1+ (line-end-position))
- '(font-lock-face font-lock-comment-face))
- (replace-match " " t t nil 2)
- (replace-match
- (string-pad
- (save-match-data
- (substitute-command-keys (format "\\[%s]" cmd)))
- 8)
- t t nil 3))))))))))
+ ((not (fboundp cmd))
+ (delete-line))
+ ((eq cmd 'git-rebase-fixup)
+ (delete-line)
+ (git-rebase--insert-descriptions
git-rebase-fixup-descriptions))
+ (t
+ (add-text-properties (line-beginning-position)
+ (1+ (line-end-position))
+ '(font-lock-face font-lock-comment-face))
+ (replace-match " " t t nil 2)
+ (replace-match
+ (string-pad
+ (save-match-data
+ (substitute-command-keys (format "\\[%s]" cmd)))
+ 8)
+ t t nil 3))))))))))
(defun git-rebase--insert-descriptions (alist)
(pcase-dolist (`(,cmd . ,desc) alist)
diff --git a/lisp/magit-base.el b/lisp/magit-base.el
index c6ddcd04016..781e1d1fa06 100644
--- a/lisp/magit-base.el
+++ b/lisp/magit-base.el
@@ -963,32 +963,32 @@ Pad the left side of STRING so that it aligns with the
text area."
(goto-char (point-min))
(while (search-forward "%" nil t)
(cond
- ;; Quoted percent sign.
- ((eq (char-after) ?%)
- (delete-char 1))
- ;; Valid format spec.
- ((looking-at "\\([-0-9.]*\\)\\([a-zA-Z]\\)")
- (let* ((num (match-str 1))
- (spec (string-to-char (match-str 2)))
- (val (assq spec specification)))
- (unless val
- (error "Invalid format character: `%%%c'" spec))
- (setq val (cdr val))
- ;; Pad result to desired length.
- (let ((text (format (concat "%" num "s") val)))
- ;; Insert first, to preserve text properties.
- (if (next-property-change 0 (concat " " text))
- ;; If the inserted text has properties, then preserve those.
- (insert text)
- ;; Otherwise preserve FORMAT's properties, like `format-spec'.
- (insert-and-inherit text))
- ;; Delete the specifier body.
- (delete-region (+ (match-beginning 0) (length text))
- (+ (match-end 0) (length text)))
- ;; Delete the percent sign.
- (delete-region (1- (match-beginning 0)) (match-beginning 0)))))
- ;; Signal an error on bogus format strings.
- ((error "Invalid format string"))))
+ ;; Quoted percent sign.
+ ((eq (char-after) ?%)
+ (delete-char 1))
+ ;; Valid format spec.
+ ((looking-at "\\([-0-9.]*\\)\\([a-zA-Z]\\)")
+ (let* ((num (match-str 1))
+ (spec (string-to-char (match-str 2)))
+ (val (assq spec specification)))
+ (unless val
+ (error "Invalid format character: `%%%c'" spec))
+ (setq val (cdr val))
+ ;; Pad result to desired length.
+ (let ((text (format (concat "%" num "s") val)))
+ ;; Insert first, to preserve text properties.
+ (if (next-property-change 0 (concat " " text))
+ ;; If the inserted text has properties, then preserve those.
+ (insert text)
+ ;; Otherwise preserve FORMAT's properties, like `format-spec'.
+ (insert-and-inherit text))
+ ;; Delete the specifier body.
+ (delete-region (+ (match-beginning 0) (length text))
+ (+ (match-end 0) (length text)))
+ ;; Delete the percent sign.
+ (delete-region (1- (match-beginning 0)) (match-beginning 0)))))
+ ;; Signal an error on bogus format strings.
+ ((error "Invalid format string"))))
(buffer-string)))
;;; Missing from Emacs
diff --git a/lisp/magit-branch.el b/lisp/magit-branch.el
index a852b314bd8..3dac76f19a2 100644
--- a/lisp/magit-branch.el
+++ b/lisp/magit-branch.el
@@ -376,26 +376,26 @@ when using `magit-branch-and-checkout'."
(list choice))
((list choice (magit-read-starting-point "Create" choice))))))
(cond
- ((not start-point)
- (magit--checkout branch (magit-branch-arguments))
- (magit-refresh))
- (t
- (when (magit-anything-modified-p t)
- (user-error "Cannot checkout when there are uncommitted changes"))
- (magit-run-git-async "checkout" (magit-branch-arguments)
- "-b" branch start-point)
- (set-process-sentinel
- magit-this-process
- (lambda (process event)
- (when (memq (process-status process) '(exit signal))
- (magit-branch-maybe-adjust-upstream branch start-point)
- (when (magit-remote-branch-p start-point)
- (pcase-let ((`(,remote . ,remote-branch)
- (magit-split-branch-name start-point)))
- (when (and (equal branch remote-branch)
- (not (equal remote (magit-get "remote.pushDefault"))))
- (magit-set remote "branch" branch "pushRemote"))))
- (magit-process-sentinel process event)))))))
+ ((not start-point)
+ (magit--checkout branch (magit-branch-arguments))
+ (magit-refresh))
+ (t
+ (when (magit-anything-modified-p t)
+ (user-error "Cannot checkout when there are uncommitted changes"))
+ (magit-run-git-async "checkout" (magit-branch-arguments)
+ "-b" branch start-point)
+ (set-process-sentinel
+ magit-this-process
+ (lambda (process event)
+ (when (memq (process-status process) '(exit signal))
+ (magit-branch-maybe-adjust-upstream branch start-point)
+ (when (magit-remote-branch-p start-point)
+ (pcase-let ((`(,remote . ,remote-branch)
+ (magit-split-branch-name start-point)))
+ (when (and (equal branch remote-branch)
+ (not (equal remote (magit-get "remote.pushDefault"))))
+ (magit-set remote "branch" branch "pushRemote"))))
+ (magit-process-sentinel process event)))))))
(defun magit-branch-maybe-adjust-upstream (branch start-point)
(when-let ((upstream
@@ -423,20 +423,20 @@ when using `magit-branch-and-checkout'."
(if magit-branch-read-upstream-first
(let ((choice (magit-read-starting-point prompt nil default-start)))
(cond
- ((magit-rev-verify choice)
- (list (magit-read-string-ns
- (if magit-completing-read--silent-default
- (format "%s (starting at `%s')" prompt choice)
- "Name for new branch")
- (let ((def (string-join (cdr (split-string choice "/")) "/")))
- (and (member choice (magit-list-remote-branch-names))
- (not (member def (magit-list-local-branch-names)))
- def)))
- choice))
- ((eq magit-branch-read-upstream-first 'fallback)
- (list choice
- (magit-read-starting-point prompt choice default-start)))
- ((user-error "Not a valid starting-point: %s" choice))))
+ ((magit-rev-verify choice)
+ (list (magit-read-string-ns
+ (if magit-completing-read--silent-default
+ (format "%s (starting at `%s')" prompt choice)
+ "Name for new branch")
+ (let ((def (string-join (cdr (split-string choice "/"))
"/")))
+ (and (member choice (magit-list-remote-branch-names))
+ (not (member def (magit-list-local-branch-names)))
+ def)))
+ choice))
+ ((eq magit-branch-read-upstream-first 'fallback)
+ (list choice
+ (magit-read-starting-point prompt choice default-start)))
+ ((user-error "Not a valid starting-point: %s" choice))))
(let ((branch (magit-read-string-ns (concat prompt " named"))))
(if (magit-branch-p branch)
(magit-branch-read-args
@@ -614,86 +614,86 @@ prompt is confusing."
"%s ambiguous; please cleanup using git directly"
(let ((len (length ambiguous)))
(cond
- ((= len 1)
- (format "%s is" (seq-find #'magit-ref-ambiguous-p branches)))
- ((= len (length refs))
- (format "These %s names are" len))
- ((format "%s of these names are" len))))))
+ ((= len 1)
+ (format "%s is" (seq-find #'magit-ref-ambiguous-p branches)))
+ ((= len (length refs))
+ (format "These %s names are" len))
+ ((format "%s of these names are" len))))))
(cond
- ((string-match "^refs/remotes/\\([^/]+\\)" (car refs))
- (let* ((remote (match-str 1 (car refs)))
- (offset (1+ (length remote))))
- (cond
- ((magit-confirm 'delete-branch-on-remote
- (list "Deleting local %s. Also delete on %s"
- (magit-ref-fullname (car branches))
- remote)
- (list "Deleting %d local refs. Also delete on %s"
- (length refs)
- remote)
- 'noabort refs)
- ;; The ref may actually point at another rev on the remote,
- ;; but this is better than nothing.
- (dolist (ref refs)
- (message "Delete %s (was %s)" ref
- (magit-rev-parse "--short" ref)))
- ;; Assume the branches actually still exist on the remote.
- (magit-run-git-async
- "push"
- (and (or force magit-branch-delete-never-verify) "--no-verify")
- remote
- (mapcar (##concat ":" (substring % offset)) branches))
- ;; If that is not the case, then this deletes the tracking branches.
- (set-process-sentinel
- magit-this-process
- (apply-partially #'magit-delete-remote-branch-sentinel remote
refs)))
- (t
- (dolist (ref refs)
- (message "Delete %s (was %s)" ref
- (magit-rev-parse "--short" ref))
- (magit-call-git "update-ref" "-d" ref))
- (magit-refresh)))))
- ((length> branches 1)
- (setq branches (delete (magit-get-current-branch) branches))
- (mapc #'magit-branch-maybe-delete-pr-remote branches)
- (mapc #'magit-branch-unset-pushRemote branches)
- (magit-run-git "branch" (if force "-D" "-d") branches))
- (t ; And now for something completely different.
- (let* ((branch (car branches))
- (prompt (format "Branch %s is checked out. " branch))
- (target (magit-get-indirect-upstream-branch branch t)))
- (when (equal branch (magit-get-current-branch))
- (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" target) 'target)
- (?a "[a]bort" 'abort)))
- (`detach (unless (or (equal force '(4))
- (member branch force)
- (magit-branch-merged-p branch t))
- (magit-confirm 'delete-unmerged-branch
- "Delete unmerged branch %s" ""
- nil (list branch)))
- (magit-call-git "checkout" "--detach"))
- (`target (unless (or (equal force '(4))
- (member branch force)
- (magit-branch-merged-p branch target))
- (magit-confirm 'delete-unmerged-branch
- "Delete unmerged branch %s" ""
- nil (list branch)))
- (magit-call-git "checkout" target))
- (`abort (user-error "Abort")))
- (setq force t))
- (magit-branch-maybe-delete-pr-remote branch)
- (magit-branch-unset-pushRemote branch)
- (magit-run-git "branch" (if force "-D" "-d") branch))))))
+ ((string-match "^refs/remotes/\\([^/]+\\)" (car refs))
+ (let* ((remote (match-str 1 (car refs)))
+ (offset (1+ (length remote))))
+ (cond
+ ((magit-confirm 'delete-branch-on-remote
+ (list "Deleting local %s. Also delete on %s"
+ (magit-ref-fullname (car branches))
+ remote)
+ (list "Deleting %d local refs. Also delete on %s"
+ (length refs)
+ remote)
+ 'noabort refs)
+ ;; The ref may actually point at another rev on the remote,
+ ;; but this is better than nothing.
+ (dolist (ref refs)
+ (message "Delete %s (was %s)" ref
+ (magit-rev-parse "--short" ref)))
+ ;; Assume the branches actually still exist on the remote.
+ (magit-run-git-async
+ "push"
+ (and (or force magit-branch-delete-never-verify) "--no-verify")
+ remote
+ (mapcar (##concat ":" (substring % offset)) branches))
+ ;; If that is not the case, then this deletes the tracking
branches.
+ (set-process-sentinel
+ magit-this-process
+ (apply-partially #'magit-delete-remote-branch-sentinel remote
refs)))
+ (t
+ (dolist (ref refs)
+ (message "Delete %s (was %s)" ref
+ (magit-rev-parse "--short" ref))
+ (magit-call-git "update-ref" "-d" ref))
+ (magit-refresh)))))
+ ((length> branches 1)
+ (setq branches (delete (magit-get-current-branch) branches))
+ (mapc #'magit-branch-maybe-delete-pr-remote branches)
+ (mapc #'magit-branch-unset-pushRemote branches)
+ (magit-run-git "branch" (if force "-D" "-d") branches))
+ (t ; And now for something completely different.
+ (let* ((branch (car branches))
+ (prompt (format "Branch %s is checked out. " branch))
+ (target (magit-get-indirect-upstream-branch branch t)))
+ (when (equal branch (magit-get-current-branch))
+ (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" target) 'target)
+ (?a "[a]bort" 'abort)))
+ (`detach (unless (or (equal force '(4))
+ (member branch force)
+ (magit-branch-merged-p branch t))
+ (magit-confirm 'delete-unmerged-branch
+ "Delete unmerged branch %s" ""
+ nil (list branch)))
+ (magit-call-git "checkout" "--detach"))
+ (`target (unless (or (equal force '(4))
+ (member branch force)
+ (magit-branch-merged-p branch target))
+ (magit-confirm 'delete-unmerged-branch
+ "Delete unmerged branch %s" ""
+ nil (list branch)))
+ (magit-call-git "checkout" target))
+ (`abort (user-error "Abort")))
+ (setq force t))
+ (magit-branch-maybe-delete-pr-remote branch)
+ (magit-branch-unset-pushRemote branch)
+ (magit-run-git "branch" (if force "-D" "-d") branch))))))
(put 'magit-branch-delete 'interactive-only t)
diff --git a/lisp/magit-clone.el b/lisp/magit-clone.el
index 5502507568a..272ec665ccd 100644
--- a/lisp/magit-clone.el
+++ b/lisp/magit-clone.el
@@ -337,12 +337,12 @@ Then show the status buffer for the new repository."
url-format
`((?h . ,host)
(?n . ,(cond
- ((string-search "/" repo) repo)
- ((string-search "." user)
- (if-let ((user (magit-get user)))
- (concat user "/" repo)
- (user-error "Set %S or specify owner explicitly" user)))
- ((concat user "/" repo))))))
+ ((string-search "/" repo) repo)
+ ((string-search "." user)
+ (if-let ((user (magit-get user)))
+ (concat user "/" repo)
+ (user-error "Set %S or specify owner explicitly" user)))
+ ((concat user "/" repo))))))
(user-error
"Bogus `magit-clone-url-format' (bad type or missing default)")))
diff --git a/lisp/magit-commit.el b/lisp/magit-commit.el
index 7ea971d5679..ef79071de05 100644
--- a/lisp/magit-commit.el
+++ b/lisp/magit-commit.el
@@ -457,49 +457,49 @@ Like `magit-commit-squash' but also run a `--autofixup'
rebase."
(defun magit-commit-assert (args &optional nopatch strict)
(cond
- (nopatch (or args (list "--")))
- ((or (magit-anything-staged-p)
- (and (magit-anything-unstaged-p)
- ;; ^ Everything of nothing is still nothing.
- (member "--all" args))
- (and (not strict)
- ;; ^ For amend variants that don't make sense otherwise.
- (or (member "--amend" args)
- (member "--allow-empty" args)
- (member "--reset-author" args)
- (member "--signoff" args)
- (transient-arg-value "--author=" args)
- (transient-arg-value "--date=" args))))
- (or args (list "--")))
- ((and (magit-rebase-in-progress-p)
- (not (magit-anything-unstaged-p))
- (y-or-n-p "Nothing staged. Continue in-progress rebase? "))
- (setq this-command #'magit-rebase-continue)
- (magit-run-git-sequencer "rebase" "--continue")
- nil)
- ((file-exists-p (expand-file-name "MERGE_MSG" (magit-gitdir)))
- (cond ((magit-anything-unmerged-p)
- (user-error "Unresolved conflicts"))
- ((and (magit-anything-unstaged-p)
- (not (y-or-n-p
- "Proceed with merge despite unstaged changes? ")))
- (user-error "Abort"))
- ((or args (list "--")))))
- ((not (magit-anything-unstaged-p))
- (user-error "Nothing staged (or unstaged)"))
- (magit-commit-ask-to-stage
- (when (eq magit-commit-ask-to-stage 'verbose)
- (apply #'magit-diff-unstaged (magit-diff-arguments)))
- (prog1 (when (or (eq magit-commit-ask-to-stage 'stage)
- (y-or-n-p
- "Nothing staged. Commit all uncommitted changes? "))
- (setq this-command 'magit-commit--all)
- (cons "--all" (or args (list "--"))))
- (when (and (eq magit-commit-ask-to-stage 'verbose)
- (derived-mode-p 'magit-diff-mode))
- (magit-mode-bury-buffer))))
- (t
- (user-error "Nothing staged"))))
+ (nopatch (or args (list "--")))
+ ((or (magit-anything-staged-p)
+ (and (magit-anything-unstaged-p)
+ ;; ^ Everything of nothing is still nothing.
+ (member "--all" args))
+ (and (not strict)
+ ;; ^ For amend variants that don't make sense otherwise.
+ (or (member "--amend" args)
+ (member "--allow-empty" args)
+ (member "--reset-author" args)
+ (member "--signoff" args)
+ (transient-arg-value "--author=" args)
+ (transient-arg-value "--date=" args))))
+ (or args (list "--")))
+ ((and (magit-rebase-in-progress-p)
+ (not (magit-anything-unstaged-p))
+ (y-or-n-p "Nothing staged. Continue in-progress rebase? "))
+ (setq this-command #'magit-rebase-continue)
+ (magit-run-git-sequencer "rebase" "--continue")
+ nil)
+ ((file-exists-p (expand-file-name "MERGE_MSG" (magit-gitdir)))
+ (cond ((magit-anything-unmerged-p)
+ (user-error "Unresolved conflicts"))
+ ((and (magit-anything-unstaged-p)
+ (not (y-or-n-p
+ "Proceed with merge despite unstaged changes? ")))
+ (user-error "Abort"))
+ ((or args (list "--")))))
+ ((not (magit-anything-unstaged-p))
+ (user-error "Nothing staged (or unstaged)"))
+ (magit-commit-ask-to-stage
+ (when (eq magit-commit-ask-to-stage 'verbose)
+ (apply #'magit-diff-unstaged (magit-diff-arguments)))
+ (prog1 (when (or (eq magit-commit-ask-to-stage 'stage)
+ (y-or-n-p
+ "Nothing staged. Commit all uncommitted changes? "))
+ (setq this-command 'magit-commit--all)
+ (cons "--all" (or args (list "--"))))
+ (when (and (eq magit-commit-ask-to-stage 'verbose)
+ (derived-mode-p 'magit-diff-mode))
+ (magit-mode-bury-buffer))))
+ (t
+ (user-error "Nothing staged"))))
;;;; Reshelve
@@ -715,20 +715,20 @@ an alternative implementation."
(setq rev "HEAD")
(setq arg nil)))
(cond
- ((not
- (and (eq this-command 'magit-diff-while-committing)
- (and-let ((buf (magit-get-mode-buffer
- 'magit-diff-mode nil 'selected)))
- (and (equal rev (buffer-local-value 'magit-buffer-range buf))
- (equal arg (buffer-local-value 'magit-buffer-typearg
buf)))))))
- ((eq command 'magit-commit-amend)
- (setq rev nil))
- ((or squash
- (file-exists-p (expand-file-name "rebase-merge/amend"
(magit-gitdir))))
- (setq rev "HEAD^"))
- (t
- (message "No alternative diff while committing")
- (setq noalt t)))
+ ((not
+ (and (eq this-command 'magit-diff-while-committing)
+ (and-let ((buf (magit-get-mode-buffer
+ 'magit-diff-mode nil 'selected)))
+ (and (equal rev (buffer-local-value 'magit-buffer-range buf))
+ (equal arg (buffer-local-value 'magit-buffer-typearg
buf)))))))
+ ((eq command 'magit-commit-amend)
+ (setq rev nil))
+ ((or squash
+ (file-exists-p (expand-file-name "rebase-merge/amend"
(magit-gitdir))))
+ (setq rev "HEAD^"))
+ (t
+ (message "No alternative diff while committing")
+ (setq noalt t)))
(unless noalt
(let ((magit-inhibit-save-previous-winconf 'unset)
(magit-display-buffer-noselect t)
diff --git a/lisp/magit-diff.el b/lisp/magit-diff.el
index b0511ae2618..ecc06d66501 100644
--- a/lisp/magit-diff.el
+++ b/lisp/magit-diff.el
@@ -1151,33 +1151,33 @@ use the commands that allow you to explicitly specify
what you need."
(let ((default-directory default-directory)
(section (magit-current-section)))
(cond
- ((magit-section-match 'module section)
- (setq default-directory
- (expand-file-name
- (file-name-as-directory (oref section value))))
- (magit-diff-range (oref section range)))
- (t
- (when (magit-section-match 'module-commit section)
- (setq args nil)
- (setq files nil)
- (setq default-directory
- (expand-file-name
- (file-name-as-directory (magit-section-parent-value section)))))
- (pcase (magit-diff--dwim)
- ('unmerged (magit-diff-unmerged args files))
- ('unstaged (magit-diff-unstaged args files))
- ('staged
- (let ((file (magit-file-at-point)))
- (if (and file (equal (cddr (car (magit-file-status file))) '(?D
?U)))
- ;; File was deleted by us and modified by them. Show the
latter.
- (magit-diff-unmerged args (list file))
- (magit-diff-staged nil args files))))
- (`(stash . ,value) (magit-stash-show value args))
- (`(commit . ,value)
- (magit-diff-range (format "%s^..%s" value value) args files))
- ((and range (pred stringp))
- (magit-diff-range range args files))
- (_ (call-interactively #'magit-diff-range)))))))
+ ((magit-section-match 'module section)
+ (setq default-directory
+ (expand-file-name
+ (file-name-as-directory (oref section value))))
+ (magit-diff-range (oref section range)))
+ (t
+ (when (magit-section-match 'module-commit section)
+ (setq args nil)
+ (setq files nil)
+ (setq default-directory
+ (expand-file-name
+ (file-name-as-directory (magit-section-parent-value
section)))))
+ (pcase (magit-diff--dwim)
+ ('unmerged (magit-diff-unmerged args files))
+ ('unstaged (magit-diff-unstaged args files))
+ ('staged
+ (let ((file (magit-file-at-point)))
+ (if (and file (equal (cddr (car (magit-file-status file))) '(?D
?U)))
+ ;; File was deleted by us and modified by them. Show the
latter.
+ (magit-diff-unmerged args (list file))
+ (magit-diff-staged nil args files))))
+ (`(stash . ,value) (magit-stash-show value args))
+ (`(commit . ,value)
+ (magit-diff-range (format "%s^..%s" value value) args files))
+ ((and range (pred stringp))
+ (magit-diff-range range args files))
+ (_ (call-interactively #'magit-diff-range)))))))
(defun magit-diff--dwim ()
"Return information for performing DWIM diff.
@@ -1256,17 +1256,17 @@ If no DWIM context is found, nil is returned."
(if mbase
(let ((base (magit-git-string "merge-base" revA revB)))
(cond
- ((string= (magit-rev-parse revA) base)
- (format "%s..%s" revA revB))
- ((string= (magit-rev-parse revB) base)
- (format "%s..%s" revB revA))
- (interactive
- (let ((main (magit-completing-read "View changes along"
- (list revA revB)
- nil t nil nil revB)))
- (format "%s...%s"
- (if (string= main revB) revA revB) main)))
- ((format "%s...%s" revA revB))))
+ ((string= (magit-rev-parse revA) base)
+ (format "%s..%s" revA revB))
+ ((string= (magit-rev-parse revB) base)
+ (format "%s..%s" revB revA))
+ (interactive
+ (let ((main (magit-completing-read "View changes along"
+ (list revA revB)
+ nil t nil nil revB)))
+ (format "%s...%s"
+ (if (string= main revB) revA revB) main)))
+ ((format "%s...%s" revA revB))))
(format "%s..%s" revA revB)))))
(defun magit-diff-read-range-or-commit (prompt &optional secondary-default
mbase)
@@ -1454,22 +1454,22 @@ for a revision."
(len (cadr range))
(end (+ beg len)))
(cond
- ((> beg line)
- (setq pos (oref diff start)))
- ((<= beg line end)
- (save-excursion
- (goto-char (oref hunk content))
- (let ((l beg))
- (while (or (< l line)
- (= (char-after) ?-))
- (unless (= (char-after) ?-)
- (cl-incf l))
- (forward-line)))
- (setq found (if (= (char-after) ?+) 'line 'hunk))
- (forward-char (1+ column))
- (setq pos (point))))
- ((null hunks)
- (setq pos (oref hunk start))))))
+ ((> beg line)
+ (setq pos (oref diff start)))
+ ((<= beg line end)
+ (save-excursion
+ (goto-char (oref hunk content))
+ (let ((l beg))
+ (while (or (< l line)
+ (= (char-after) ?-))
+ (unless (= (char-after) ?-)
+ (cl-incf l))
+ (forward-line)))
+ (setq found (if (= (char-after) ?+) 'line 'hunk))
+ (forward-char (1+ column))
+ (setq pos (point))))
+ ((null hunks)
+ (setq pos (oref hunk start))))))
(and pos
(list pos (or found file))))))
@@ -1523,15 +1523,15 @@ instead."
(transient-infix-read 'magit:--)))
(magit-refresh)))
(cond
- ((derived-mode-p 'magit-log-mode
- 'magit-cherry-mode
- 'magit-reflog-mode)
- (if-let ((buffer (magit-get-mode-buffer 'magit-revision-mode)))
- (with-current-buffer buffer (toggle))
- (message "No revision buffer")))
- ((local-variable-p 'magit-buffer-diff-files)
- (toggle))
- ((user-error "Cannot toggle file filter in this buffer")))))
+ ((derived-mode-p 'magit-log-mode
+ 'magit-cherry-mode
+ 'magit-reflog-mode)
+ (if-let ((buffer (magit-get-mode-buffer 'magit-revision-mode)))
+ (with-current-buffer buffer (toggle))
+ (message "No revision buffer")))
+ ((local-variable-p 'magit-buffer-diff-files)
+ (toggle))
+ ((user-error "Cannot toggle file filter in this buffer")))))
(defun magit-diff-less-context (&optional count)
"Decrease the context for diff hunks by COUNT lines."
@@ -1891,36 +1891,36 @@ commit or stash at point, then prompt for a commit."
(defun magit-diff-show-or-scroll (fn)
(let (rev cmd buf win)
(cond
- ((and (bound-and-true-p magit-blame-mode)
- (fboundp 'magit-current-blame-chunk))
- (setq rev (oref (magit-current-blame-chunk) orig-rev))
- (setq cmd #'magit-show-commit)
- (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
- ((derived-mode-p 'git-rebase-mode)
- (with-slots (action-type target)
- (git-rebase-current-line)
- (if (not (eq action-type 'commit))
- (user-error "No commit on this line")
- (setq rev target)
+ ((and (bound-and-true-p magit-blame-mode)
+ (fboundp 'magit-current-blame-chunk))
+ (setq rev (oref (magit-current-blame-chunk) orig-rev))
+ (setq cmd #'magit-show-commit)
+ (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
+ ((derived-mode-p 'git-rebase-mode)
+ (with-slots (action-type target)
+ (git-rebase-current-line)
+ (if (not (eq action-type 'commit))
+ (user-error "No commit on this line")
+ (setq rev target)
+ (setq cmd #'magit-show-commit)
+ (setq buf (magit-get-mode-buffer 'magit-revision-mode)))))
+ ((magit-section-case
+ (branch
+ (setq rev (magit-ref-maybe-qualify (oref it value)))
+ (setq cmd #'magit-show-commit)
+ (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
+ (commit
+ (setq rev (oref it value))
+ (setq cmd #'magit-show-commit)
+ (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
+ (tag
+ (setq rev (magit-rev-hash (oref it value)))
(setq cmd #'magit-show-commit)
- (setq buf (magit-get-mode-buffer 'magit-revision-mode)))))
- ((magit-section-case
- (branch
- (setq rev (magit-ref-maybe-qualify (oref it value)))
- (setq cmd #'magit-show-commit)
- (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
- (commit
- (setq rev (oref it value))
- (setq cmd #'magit-show-commit)
- (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
- (tag
- (setq rev (magit-rev-hash (oref it value)))
- (setq cmd #'magit-show-commit)
- (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
- (stash
- (setq rev (oref it value))
- (setq cmd #'magit-stash-show)
- (setq buf (magit-get-mode-buffer 'magit-stash-mode))))))
+ (setq buf (magit-get-mode-buffer 'magit-revision-mode)))
+ (stash
+ (setq rev (oref it value))
+ (setq cmd #'magit-stash-show)
+ (setq buf (magit-get-mode-buffer 'magit-stash-mode))))))
(if rev
(if (and buf
(setq win (get-buffer-window buf))
@@ -2320,29 +2320,29 @@ keymap is the parent of their keymaps."
(defun magit-diff-wash-signature (object)
(cond
- ((looking-at "^No signature")
- (delete-line))
- ((looking-at "^gpg: ")
- (let (title end)
- (save-excursion
- (while (looking-at "^gpg: ")
- (cond
- ((looking-at "^gpg: Good signature from")
- (setq title (magit--propertize-face
- (buffer-substring (point) (line-end-position))
- 'magit-signature-good)))
- ((looking-at "^gpg: Can't check signature")
- (setq title (magit--propertize-face
- (buffer-substring (point) (line-end-position))
- '(italic bold)))))
- (forward-line))
- (setq end (point-marker)))
- (magit-insert-section (signature object title)
- (when title
- (magit-insert-heading title))
- (goto-char end)
- (set-marker end nil)
- (insert "\n"))))))
+ ((looking-at "^No signature")
+ (delete-line))
+ ((looking-at "^gpg: ")
+ (let (title end)
+ (save-excursion
+ (while (looking-at "^gpg: ")
+ (cond
+ ((looking-at "^gpg: Good signature from")
+ (setq title (magit--propertize-face
+ (buffer-substring (point) (line-end-position))
+ 'magit-signature-good)))
+ ((looking-at "^gpg: Can't check signature")
+ (setq title (magit--propertize-face
+ (buffer-substring (point) (line-end-position))
+ '(italic bold)))))
+ (forward-line))
+ (setq end (point-marker)))
+ (magit-insert-section (signature object title)
+ (when title
+ (magit-insert-heading title))
+ (goto-char end)
+ (set-marker end nil)
+ (insert "\n"))))))
(defun magit-diff-wash-diffstat ()
(let (heading (beg (point)))
@@ -2394,135 +2394,135 @@ keymap is the parent of their keymaps."
(require 'ansi-color)
(ansi-color-apply-on-region (point-min) (point-max)))
(cond
- ((looking-at "^Submodule")
- (magit-diff-wash-submodule))
- ((looking-at "^\\* Unmerged path \\(.*\\)")
- (let ((file (magit-decode-git-path (match-str 1))))
- (magit-delete-line)
- (unless (and (derived-mode-p 'magit-status-mode)
- (not (member "--cached" args)))
- (magit-insert-section (file file)
- (insert (propertize
- (format "unmerged %s%s" file
- (pcase (cddr (car (magit-file-status file)))
- ('(?D ?D) " (both deleted)")
- ('(?D ?U) " (deleted by us)")
- ('(?U ?D) " (deleted by them)")
- ('(?A ?A) " (both added)")
- ('(?A ?U) " (added by us)")
- ('(?U ?A) " (added by them)")
- ('(?U ?U) "")))
- 'font-lock-face 'magit-diff-file-heading))
- (insert ?\n))))
- t)
- ((looking-at magit-diff-conflict-headline-re)
- (let ((long-status (match-str 0))
- (status "BUG")
- file orig base)
- (if (equal long-status "merged")
- (progn (setq status long-status)
- (setq long-status nil))
- (setq status (pcase-exhaustive long-status
- ("added in remote" "new file")
- ("added in both" "new file")
- ("added in local" "new file")
- ("removed in both" "removed")
- ("changed in both" "changed")
- ("removed in local" "removed")
- ("removed in remote" "removed"))))
- (magit-delete-line)
- (while (looking-at
- "^ \\([^ ]+\\) +[0-9]\\{6\\} \\([a-z0-9]\\{40,\\}\\) \\(.+\\)$")
- (magit-bind-match-strings (side _blob name) nil
- (pcase side
- ("result" (setq file name))
- ("our" (setq orig name))
- ("their" (setq file name))
- ("base" (setq base name))))
- (magit-delete-line))
- (when orig (setq orig (magit-decode-git-path orig)))
- (when file (setq file (magit-decode-git-path file)))
- (magit-diff-insert-file-section
- (or file base) orig status nil nil nil nil long-status)))
- ;; The files on this line may be ambiguous due to whitespace.
- ;; That's okay. We can get their names from subsequent headers.
- ((looking-at "^diff --\
+ ((looking-at "^Submodule")
+ (magit-diff-wash-submodule))
+ ((looking-at "^\\* Unmerged path \\(.*\\)")
+ (let ((file (magit-decode-git-path (match-str 1))))
+ (magit-delete-line)
+ (unless (and (derived-mode-p 'magit-status-mode)
+ (not (member "--cached" args)))
+ (magit-insert-section (file file)
+ (insert (propertize
+ (format "unmerged %s%s" file
+ (pcase (cddr (car (magit-file-status file)))
+ ('(?D ?D) " (both deleted)")
+ ('(?D ?U) " (deleted by us)")
+ ('(?U ?D) " (deleted by them)")
+ ('(?A ?A) " (both added)")
+ ('(?A ?U) " (added by us)")
+ ('(?U ?A) " (added by them)")
+ ('(?U ?U) "")))
+ 'font-lock-face 'magit-diff-file-heading))
+ (insert ?\n))))
+ t)
+ ((looking-at magit-diff-conflict-headline-re)
+ (let ((long-status (match-str 0))
+ (status "BUG")
+ file orig base)
+ (if (equal long-status "merged")
+ (progn (setq status long-status)
+ (setq long-status nil))
+ (setq status (pcase-exhaustive long-status
+ ("added in remote" "new file")
+ ("added in both" "new file")
+ ("added in local" "new file")
+ ("removed in both" "removed")
+ ("changed in both" "changed")
+ ("removed in local" "removed")
+ ("removed in remote" "removed"))))
+ (magit-delete-line)
+ (while (looking-at
+ "^ \\([^ ]+\\) +[0-9]\\{6\\} \\([a-z0-9]\\{40,\\}\\)
\\(.+\\)$")
+ (magit-bind-match-strings (side _blob name) nil
+ (pcase side
+ ("result" (setq file name))
+ ("our" (setq orig name))
+ ("their" (setq file name))
+ ("base" (setq base name))))
+ (magit-delete-line))
+ (when orig (setq orig (magit-decode-git-path orig)))
+ (when file (setq file (magit-decode-git-path file)))
+ (magit-diff-insert-file-section
+ (or file base) orig status nil nil nil nil long-status)))
+ ;; The files on this line may be ambiguous due to whitespace.
+ ;; That's okay. We can get their names from subsequent headers.
+ ((looking-at "^diff --\
\\(?:\\(?1:git\\) \\(?:\\(?2:.+?\\) \\2\\)?\
\\|\\(?:cc\\|combined\\) \\(?3:.+\\)\\)")
- (let ((status (cond ((equal (match-str 1) "git") "modified")
- ((derived-mode-p 'magit-revision-mode) "resolved")
- (t "unmerged")))
- (orig nil)
- (file (or (match-str 2) (match-str 3)))
- (header (list (buffer-substring-no-properties
- (line-beginning-position) (1+ (line-end-position)))))
- (modes nil)
- (rename nil)
- (binary nil))
- (magit-delete-line)
- (while (not (or (eobp)
- (looking-at magit-diff-headline-re)
- (looking-at magit-log-heading-re)))
- (cond
- ((looking-at "old mode \\(?:[^\n]+\\)\nnew mode \\(?:[^\n]+\\)\n")
- (setq modes (match-str 0)))
- ((looking-at "deleted file .+\n")
- (setq status "deleted"))
- ((looking-at "new file .+\n")
- (setq status "new file"))
- ((looking-at "rename from \\(.+\\)\nrename to \\(.+\\)\n")
- (setq rename (match-str 0))
- (setq orig (match-str 1))
- (setq file (match-str 2))
- (setq status "renamed"))
- ((looking-at "copy from \\(.+\\)\ncopy to \\(.+\\)\n")
- (setq orig (match-str 1))
- (setq file (match-str 2))
- (setq status "new file"))
- ((looking-at "similarity index .+\n"))
- ((looking-at "dissimilarity index .+\n"))
- ((looking-at "index .+\n"))
- ((looking-at "--- \\(.+?\\)\t?\n")
- (unless (equal (match-str 1) "/dev/null")
- (setq orig (match-str 1))))
- ((looking-at "\\+\\+\\+ \\(.+?\\)\t?\n")
- (unless (equal (match-str 1) "/dev/null")
- (setq file (match-str 1))))
- ((looking-at "Binary files .+ and .+ differ\n")
- (setq binary t))
- ((looking-at "Binary files differ\n")
- (setq binary t))
- ;; TODO Use all combined diff extended headers.
- ((looking-at "mode .+\n"))
- ((error "BUG: Unknown extended header: %S"
- (buffer-substring (point) (line-end-position)))))
- ;; These headers are treated as some sort of special hunk.
- (unless (or (string-prefix-p "old mode" (match-str 0))
- (string-prefix-p "rename" (match-str 0)))
- (push (match-str 0) header))
- (magit-delete-match))
- (when orig
- (setq orig (magit-decode-git-path orig)))
- (setq file (magit-decode-git-path file))
- (setq header (nreverse header))
- ;; KLUDGE `git-log' ignores `--no-prefix' when `-L' is used.
- (when (and (derived-mode-p 'magit-log-mode)
- (seq-some (##string-prefix-p "-L" %)
- magit-buffer-log-args))
- (when orig
- (setq orig (substring orig 2)))
- (setq file (substring file 2))
- (setq header (list (save-excursion
- (string-match "diff [^ ]+" (car header))
- (format "%s %s %s\n"
- (match-str 0 (car header))
- (or orig file)
- (or file orig)))
- (format "--- %s\n" (or orig "/dev/null"))
- (format "+++ %s\n" (or file "/dev/null")))))
- (setq header (string-join header))
- (magit-diff-insert-file-section
- file orig status modes rename header binary nil)))))
+ (let ((status (cond ((equal (match-str 1) "git") "modified")
+ ((derived-mode-p 'magit-revision-mode) "resolved")
+ (t "unmerged")))
+ (orig nil)
+ (file (or (match-str 2) (match-str 3)))
+ (header (list (buffer-substring-no-properties
+ (line-beginning-position) (1+ (line-end-position)))))
+ (modes nil)
+ (rename nil)
+ (binary nil))
+ (magit-delete-line)
+ (while (not (or (eobp)
+ (looking-at magit-diff-headline-re)
+ (looking-at magit-log-heading-re)))
+ (cond
+ ((looking-at "old mode \\(?:[^\n]+\\)\nnew mode \\(?:[^\n]+\\)\n")
+ (setq modes (match-str 0)))
+ ((looking-at "deleted file .+\n")
+ (setq status "deleted"))
+ ((looking-at "new file .+\n")
+ (setq status "new file"))
+ ((looking-at "rename from \\(.+\\)\nrename to \\(.+\\)\n")
+ (setq rename (match-str 0))
+ (setq orig (match-str 1))
+ (setq file (match-str 2))
+ (setq status "renamed"))
+ ((looking-at "copy from \\(.+\\)\ncopy to \\(.+\\)\n")
+ (setq orig (match-str 1))
+ (setq file (match-str 2))
+ (setq status "new file"))
+ ((looking-at "similarity index .+\n"))
+ ((looking-at "dissimilarity index .+\n"))
+ ((looking-at "index .+\n"))
+ ((looking-at "--- \\(.+?\\)\t?\n")
+ (unless (equal (match-str 1) "/dev/null")
+ (setq orig (match-str 1))))
+ ((looking-at "\\+\\+\\+ \\(.+?\\)\t?\n")
+ (unless (equal (match-str 1) "/dev/null")
+ (setq file (match-str 1))))
+ ((looking-at "Binary files .+ and .+ differ\n")
+ (setq binary t))
+ ((looking-at "Binary files differ\n")
+ (setq binary t))
+ ;; TODO Use all combined diff extended headers.
+ ((looking-at "mode .+\n"))
+ ((error "BUG: Unknown extended header: %S"
+ (buffer-substring (point) (line-end-position)))))
+ ;; These headers are treated as some sort of special hunk.
+ (unless (or (string-prefix-p "old mode" (match-str 0))
+ (string-prefix-p "rename" (match-str 0)))
+ (push (match-str 0) header))
+ (magit-delete-match))
+ (when orig
+ (setq orig (magit-decode-git-path orig)))
+ (setq file (magit-decode-git-path file))
+ (setq header (nreverse header))
+ ;; KLUDGE `git-log' ignores `--no-prefix' when `-L' is used.
+ (when (and (derived-mode-p 'magit-log-mode)
+ (seq-some (##string-prefix-p "-L" %)
+ magit-buffer-log-args))
+ (when orig
+ (setq orig (substring orig 2)))
+ (setq file (substring file 2))
+ (setq header (list (save-excursion
+ (string-match "diff [^ ]+" (car header))
+ (format "%s %s %s\n"
+ (match-str 0 (car header))
+ (or orig file)
+ (or file orig)))
+ (format "--- %s\n" (or orig "/dev/null"))
+ (format "+++ %s\n" (or file "/dev/null")))))
+ (setq header (string-join header))
+ (magit-diff-insert-file-section
+ file orig status modes rename header binary nil)))))
(defun magit-diff-insert-file-section
(file orig status modes rename header binary long-status)
@@ -2605,56 +2605,56 @@ function errors."
(magit-delete-line)
(setq modified t))
(cond
- ((and (looking-at "^Submodule \\([^ ]+\\) \\([^ :]+\\)\\(
(rewind)\\)?:$")
- (equal (match-str 1) module))
- (magit-bind-match-strings (_module range rewind) nil
- (magit-delete-line)
- (while (looking-at "^ \\([<>]\\) \\(.*\\)$")
- (magit-delete-line))
- (when rewind
- (setq range (replace-regexp-in-string "[^.]\\(\\.\\.\\)[^.]"
- "..." range t t 1)))
- (magit-insert-section (module module t)
- (magit-insert-heading
- (magit-format-file 'module module 'magit-diff-file-heading
- "modified")
- " ("
- (cond (rewind "rewind")
- ((string-search "..." range) "non-ff")
- ("new commits"))
- (and (or modified untracked)
- (concat ", "
- (and modified "modified")
- (and modified untracked " and ")
- (and untracked "untracked")
- " content"))
- ")")
- (magit-insert-section-body
- (let ((default-directory
- (file-name-as-directory
- (expand-file-name module (magit-toplevel)))))
- (magit-git-wash (apply-partially #'magit-log-wash-log 'module)
- "log" "--oneline" "--left-right" range)
- (delete-char -1))))))
- ((and (looking-at "^Submodule \\([^ ]+\\) \\([^ ]+\\) (\\([^)]+\\))$")
- (equal (match-str 1) module))
- (magit-bind-match-strings (_module _range msg) nil
- (magit-delete-line)
- (magit-insert-section (module module)
- (magit-insert-heading
- (magit-format-file 'module module 'magit-diff-file-heading
- "submodule")
- " (" msg ")"))))
- (t
- (magit-insert-section (module module)
- (magit-insert-heading
- (magit-format-file 'module module 'magit-diff-file-heading
- "modified")
- " ("
- (and modified "modified")
- (and modified untracked " and ")
- (and untracked "untracked")
- " content)")))))))
+ ((and (looking-at "^Submodule \\([^ ]+\\) \\([^ :]+\\)\\(
(rewind)\\)?:$")
+ (equal (match-str 1) module))
+ (magit-bind-match-strings (_module range rewind) nil
+ (magit-delete-line)
+ (while (looking-at "^ \\([<>]\\) \\(.*\\)$")
+ (magit-delete-line))
+ (when rewind
+ (setq range (replace-regexp-in-string "[^.]\\(\\.\\.\\)[^.]"
+ "..." range t t 1)))
+ (magit-insert-section (module module t)
+ (magit-insert-heading
+ (magit-format-file 'module module 'magit-diff-file-heading
+ "modified")
+ " ("
+ (cond (rewind "rewind")
+ ((string-search "..." range) "non-ff")
+ ("new commits"))
+ (and (or modified untracked)
+ (concat ", "
+ (and modified "modified")
+ (and modified untracked " and ")
+ (and untracked "untracked")
+ " content"))
+ ")")
+ (magit-insert-section-body
+ (let ((default-directory
+ (file-name-as-directory
+ (expand-file-name module (magit-toplevel)))))
+ (magit-git-wash (apply-partially #'magit-log-wash-log 'module)
+ "log" "--oneline" "--left-right" range)
+ (delete-char -1))))))
+ ((and (looking-at "^Submodule \\([^ ]+\\) \\([^ ]+\\) (\\([^)]+\\))$")
+ (equal (match-str 1) module))
+ (magit-bind-match-strings (_module _range msg) nil
+ (magit-delete-line)
+ (magit-insert-section (module module)
+ (magit-insert-heading
+ (magit-format-file 'module module 'magit-diff-file-heading
+ "submodule")
+ " (" msg ")"))))
+ (t
+ (magit-insert-section (module module)
+ (magit-insert-heading
+ (magit-format-file 'module module 'magit-diff-file-heading
+ "modified")
+ " ("
+ (and modified "modified")
+ (and modified untracked " and ")
+ (and untracked "untracked")
+ " content)")))))))
(defun magit-diff-wash-hunk ()
(when (looking-at "^@\\{2,\\} \\(.+?\\) @\\{2,\\}\\(?: \\(.*\\)\\)?")
@@ -3126,14 +3126,14 @@ It the SECTION has a different type, then do nothing."
(while (looking-at "^[ @]") (forward-line))
(let ((beg (magit-point)))
(list (cond
- ((looking-at "^[-+]")
- (forward-line)
- (while (looking-at "^[-+]") (forward-line))
- (while (looking-at "^ ") (forward-line))
- (forward-line -1)
- (regexp-quote (buffer-substring-no-properties
- beg (line-end-position))))
- (t))))))))
+ ((looking-at "^[-+]")
+ (forward-line)
+ (while (looking-at "^[-+]") (forward-line))
+ (while (looking-at "^ ") (forward-line))
+ (forward-line -1)
+ (regexp-quote (buffer-substring-no-properties
+ beg (line-end-position))))
+ (t))))))))
(cl-defmethod magit-section-goto-successor ((section magit-hunk-section)
line char &optional arg)
@@ -3381,31 +3381,31 @@ actually a `diff' but a `diffstat' section."
(put-text-property
(point) (1+ (line-end-position)) 'font-lock-face
(cond
- ((looking-at "^\\+\\+?\\([<=|>]\\)\\{7\\}")
- (setq stage (pcase (list (match-str 1) highlight)
- ('("<" nil) 'magit-diff-our)
- ('("<" t) 'magit-diff-our-highlight)
- ('("|" nil) 'magit-diff-base)
- ('("|" t) 'magit-diff-base-highlight)
- ('("=" nil) 'magit-diff-their)
- ('("=" t) 'magit-diff-their-highlight)
- ('(">" nil) nil)))
- (if highlight
- 'magit-diff-conflict-heading-highlight
- 'magit-diff-conflict-heading))
- ((looking-at (if merging "^\\(\\+\\| \\+\\)" "^\\+"))
- (magit-diff-paint-tab merging tab-width)
- (magit-diff-paint-whitespace merging 'added diff-type)
- (or stage
- (if highlight 'magit-diff-added-highlight 'magit-diff-added)))
- ((looking-at (if merging "^\\(-\\| -\\)" "^-"))
- (magit-diff-paint-tab merging tab-width)
- (magit-diff-paint-whitespace merging 'removed diff-type)
- (if highlight 'magit-diff-removed-highlight 'magit-diff-removed))
- (t
- (magit-diff-paint-tab merging tab-width)
- (magit-diff-paint-whitespace merging 'context diff-type)
- (if highlight 'magit-diff-context-highlight 'magit-diff-context))))
+ ((looking-at "^\\+\\+?\\([<=|>]\\)\\{7\\}")
+ (setq stage (pcase (list (match-str 1) highlight)
+ ('("<" nil) 'magit-diff-our)
+ ('("<" t) 'magit-diff-our-highlight)
+ ('("|" nil) 'magit-diff-base)
+ ('("|" t) 'magit-diff-base-highlight)
+ ('("=" nil) 'magit-diff-their)
+ ('("=" t) 'magit-diff-their-highlight)
+ ('(">" nil) nil)))
+ (if highlight
+ 'magit-diff-conflict-heading-highlight
+ 'magit-diff-conflict-heading))
+ ((looking-at (if merging "^\\(\\+\\| \\+\\)" "^\\+"))
+ (magit-diff-paint-tab merging tab-width)
+ (magit-diff-paint-whitespace merging 'added diff-type)
+ (or stage
+ (if highlight 'magit-diff-added-highlight 'magit-diff-added)))
+ ((looking-at (if merging "^\\(-\\| -\\)" "^-"))
+ (magit-diff-paint-tab merging tab-width)
+ (magit-diff-paint-whitespace merging 'removed diff-type)
+ (if highlight 'magit-diff-removed-highlight 'magit-diff-removed))
+ (t
+ (magit-diff-paint-tab merging tab-width)
+ (magit-diff-paint-whitespace merging 'context diff-type)
+ (if highlight 'magit-diff-context-highlight 'magit-diff-context))))
(forward-line)))
(when (eq magit-diff-refine-hunk 'all)
(magit-diff-update-hunk-refinement section))
diff --git a/lisp/magit-extras.el b/lisp/magit-extras.el
index b03ca18cf6c..2b51546f03d 100644
--- a/lisp/magit-extras.el
+++ b/lisp/magit-extras.el
@@ -447,69 +447,69 @@ list returned by `magit-rebase-arguments'."
(user-error "Refusing to reshelve detached head")))
(backup (concat "refs/original/refs/heads/" current)))
(cond
- ((not commit)
- (when (and (magit-ref-p backup)
- (not (magit-y-or-n-p
- (format "Backup ref %s already exists. Override? "
- backup))))
- (user-error "Abort"))
- (magit-log-select
- (lambda (rev)
- (magit-reshelve-since rev keyid))
- "Type %p on a commit to reshelve it and the commits above it,"))
- (t
- (cl-flet ((adjust (time offset)
- (format-time-string
- "%F %T %z"
- (+ (floor time)
- (* offset 60)
- (- (car (decode-time time)))))))
- (let* ((start (concat commit "^"))
- (range (concat start ".." current))
- (time-rev (adjust (float-time (string-to-number
- (magit-rev-format "%at" start)))
- 1))
- (time-now (adjust (float-time)
- (- (string-to-number
- (magit-git-string "rev-list" "--count"
- range))))))
- (push time-rev magit--reshelve-history)
- (let ((date (floor
- (float-time
- (date-to-time
- (read-string "Date for first commit: "
- time-now 'magit--reshelve-history))))))
- (with-environment-variables (("FILTER_BRANCH_SQUELCH_WARNING" "1"))
- (magit-with-toplevel
- (magit-run-git-async
- "filter-branch" "--force" "--env-filter"
- (format
- "case $GIT_COMMIT in %s\nesac"
- (mapconcat
- (lambda (rev)
- (prog1
- (concat
- (format "%s) " rev)
- (and (not magit-reshelve-since-committer-only)
- (format "export GIT_AUTHOR_DATE=\"%s\"; " date))
- (format "export GIT_COMMITTER_DATE=\"%s\";;" date))
- (cl-incf date 60)))
- (magit-git-lines "rev-list" "--reverse" range)
- " "))
- (and keyid
- (list "--commit-filter"
- (format "git commit-tree --gpg-sign=%s \"$@\";"
- keyid)))
- range "--"))
- (set-process-sentinel
- magit-this-process
- (lambda (process event)
- (when (memq (process-status process) '(exit signal))
- (if (> (process-exit-status process) 0)
- (magit-process-sentinel process event)
- (process-put process 'inhibit-refresh t)
- (magit-process-sentinel process event)
- (magit-run-git "update-ref" "-d" backup)))))))))))))
+ ((not commit)
+ (when (and (magit-ref-p backup)
+ (not (magit-y-or-n-p
+ (format "Backup ref %s already exists. Override? "
+ backup))))
+ (user-error "Abort"))
+ (magit-log-select
+ (lambda (rev)
+ (magit-reshelve-since rev keyid))
+ "Type %p on a commit to reshelve it and the commits above it,"))
+ (t
+ (cl-flet ((adjust (time offset)
+ (format-time-string
+ "%F %T %z"
+ (+ (floor time)
+ (* offset 60)
+ (- (car (decode-time time)))))))
+ (let* ((start (concat commit "^"))
+ (range (concat start ".." current))
+ (time-rev (adjust (float-time (string-to-number
+ (magit-rev-format "%at" start)))
+ 1))
+ (time-now (adjust (float-time)
+ (- (string-to-number
+ (magit-git-string "rev-list" "--count"
+ range))))))
+ (push time-rev magit--reshelve-history)
+ (let ((date (floor
+ (float-time
+ (date-to-time
+ (read-string "Date for first commit: "
+ time-now 'magit--reshelve-history))))))
+ (with-environment-variables (("FILTER_BRANCH_SQUELCH_WARNING"
"1"))
+ (magit-with-toplevel
+ (magit-run-git-async
+ "filter-branch" "--force" "--env-filter"
+ (format
+ "case $GIT_COMMIT in %s\nesac"
+ (mapconcat
+ (lambda (rev)
+ (prog1
+ (concat
+ (format "%s) " rev)
+ (and (not magit-reshelve-since-committer-only)
+ (format "export GIT_AUTHOR_DATE=\"%s\"; "
date))
+ (format "export GIT_COMMITTER_DATE=\"%s\";;" date))
+ (cl-incf date 60)))
+ (magit-git-lines "rev-list" "--reverse" range)
+ " "))
+ (and keyid
+ (list "--commit-filter"
+ (format "git commit-tree --gpg-sign=%s \"$@\";"
+ keyid)))
+ range "--"))
+ (set-process-sentinel
+ magit-this-process
+ (lambda (process event)
+ (when (memq (process-status process) '(exit signal))
+ (if (> (process-exit-status process) 0)
+ (magit-process-sentinel process event)
+ (process-put process 'inhibit-refresh t)
+ (magit-process-sentinel process event)
+ (magit-run-git "update-ref" "-d" backup)))))))))))))
;;; Revision Stack
diff --git a/lisp/magit-fetch.el b/lisp/magit-fetch.el
index cb41ff82d7f..07205f20436 100644
--- a/lisp/magit-fetch.el
+++ b/lisp/magit-fetch.el
@@ -81,10 +81,10 @@ push-remote."
(remote (magit-get-push-remote branch))
(v (magit--push-remote-variable branch t)))
(cond
- ((member remote (magit-list-remotes)) remote)
- (remote
- (format "%s, replacing invalid" v))
- ((format "%s, setting that" v)))))
+ ((member remote (magit-list-remotes)) remote)
+ (remote
+ (format "%s, replacing invalid" v))
+ ((format "%s, setting that" v)))))
;;;###autoload(autoload 'magit-fetch-from-upstream "magit-fetch" nil t)
(transient-define-suffix magit-fetch-from-upstream (remote args)
diff --git a/lisp/magit-files.el b/lisp/magit-files.el
index c2c2f7ee4ce..e64c6041888 100644
--- a/lisp/magit-files.el
+++ b/lisp/magit-files.el
@@ -85,16 +85,16 @@ the line and column corresponding to that location."
(setq line (line-number-at-pos))
(setq col (current-column))
(cond
- ((not (equal visited-file file)))
- ((equal magit-buffer-revision rev))
- ((equal rev "{worktree}")
- (setq line (magit-diff-visit--offset file magit-buffer-revision line)))
- ((equal rev "{index}")
- (setq line (magit-diff-visit--offset file nil line)))
- (magit-buffer-revision
- (setq line (magit-diff-visit--offset
- file (concat magit-buffer-revision ".." rev) line)))
- ((setq line (magit-diff-visit--offset file (list "-R" rev) line)))))
+ ((not (equal visited-file file)))
+ ((equal magit-buffer-revision rev))
+ ((equal rev "{worktree}")
+ (setq line (magit-diff-visit--offset file magit-buffer-revision
line)))
+ ((equal rev "{index}")
+ (setq line (magit-diff-visit--offset file nil line)))
+ (magit-buffer-revision
+ (setq line (magit-diff-visit--offset
+ file (concat magit-buffer-revision ".." rev) line)))
+ ((setq line (magit-diff-visit--offset file (list "-R" rev) line)))))
(funcall fn buf)
(when line
(with-current-buffer buf
diff --git a/lisp/magit-git.el b/lisp/magit-git.el
index 1726de104c9..26a97183d3d 100644
--- a/lisp/magit-git.el
+++ b/lisp/magit-git.el
@@ -561,12 +561,12 @@ insert the run command and stderr into the process
buffer."
(goto-char (point-max))
(setq errmsg
(cond
- ((eq return-error 'full)
- (let ((str (buffer-string)))
- (and (not (equal str "")) str)))
- ((functionp magit-git-debug)
- (funcall magit-git-debug (buffer-string)))
- ((magit--locate-error-message)))))
+ ((eq return-error 'full)
+ (let ((str (buffer-string)))
+ (and (not (equal str "")) str)))
+ ((functionp magit-git-debug)
+ (funcall magit-git-debug (buffer-string)))
+ ((magit--locate-error-message)))))
(when magit-git-debug
(let ((magit-git-debug nil))
(with-current-buffer (magit-process-buffer t)
@@ -708,29 +708,29 @@ format."
(status (magit-process-git t "version"))
(output (buffer-string)))
(cond
- ((not (zerop status))
- (display-warning
- 'magit
- (format "%S\n\nRunning \"%s --version\" failed with
output:\n\n%s"
- (if host
- (format "Magit cannot find Git on host %S.\n
+ ((not (zerop status))
+ (display-warning
+ 'magit
+ (format "%S\n\nRunning \"%s --version\" failed with
output:\n\n%s"
+ (if host
+ (format "Magit cannot find Git on host %S.\n
Check the value of `magit-remote-git-executable' using
`magit-debug-git-executable' and consult the info node
`(tramp)Remote programs'." host)
- "Magit cannot find Git.\n
+ "Magit cannot find Git.\n
Check the values of `magit-git-executable' and `exec-path'
using `magit-debug-git-executable'.")
- (magit-git-executable)
- output)))
- ((save-match-data
- (and (string-match magit--git-version-regexp output)
- (let ((version (match-str 1 output)))
- (push (cons host version)
- magit--host-git-version-cache)
- version))))
- ((error "Unexpected \"%s --version\" output: %S"
- (magit-git-executable)
- output)))))))))
+ (magit-git-executable)
+ output)))
+ ((save-match-data
+ (and (string-match magit--git-version-regexp output)
+ (let ((version (match-str 1 output)))
+ (push (cons host version)
+ magit--host-git-version-cache)
+ version))))
+ ((error "Unexpected \"%s --version\" output: %S"
+ (magit-git-executable)
+ output)))))))))
(defun magit-git-version-assert (&optional minimal who)
"Assert that the used Git version is greater than or equal to MINIMAL.
@@ -1750,10 +1750,10 @@ The amount of time spent searching is limited by
(concat remote "/" newname))))
(pcase-dolist (`(,branch ,upstream) branches)
(cond
- ((equal upstream oldname)
- (magit-set-upstream-branch branch new))
- ((equal upstream (concat remote "/" oldname))
- (magit-set-upstream-branch branch (concat remote "/" newname))))))))
+ ((equal upstream oldname)
+ (magit-set-upstream-branch branch new))
+ ((equal upstream (concat remote "/" oldname))
+ (magit-set-upstream-branch branch (concat remote "/" newname))))))))
(defun magit--get-default-branch (&optional update)
(let ((remote (magit-primary-remote)))
@@ -2469,18 +2469,18 @@ and this option only controls what face is used.")
(string-match "^[^/]*/" push)
(setq push (substring push 0 (match-end 0))))
(cond
- ((equal name current)
- (setq head
- (concat push
- (magit--propertize-face
- name 'magit-branch-current))))
- ((equal name target)
- (setq upstream
- (concat push
- (magit--propertize-face
- name '(magit-branch-upstream
- magit-branch-local)))))
- ((push (concat push name) combined)))))
+ ((equal name current)
+ (setq head
+ (concat push
+ (magit--propertize-face
+ name 'magit-branch-current))))
+ ((equal name target)
+ (setq upstream
+ (concat push
+ (magit--propertize-face
+ name '(magit-branch-upstream
+ magit-branch-local)))))
+ ((push (concat push name) combined)))))
(cond-let
((or upstream (not target)))
((member target remotes)
diff --git a/lisp/magit-log.el b/lisp/magit-log.el
index 1dafdb0fd96..a9ca97e68e2 100644
--- a/lisp/magit-log.el
+++ b/lisp/magit-log.el
@@ -569,19 +569,19 @@ commits before and half after."
("b" "buffer lock" magit-toggle-buffer-lock)]]
(interactive)
(cond
- ((not (eq transient-current-command 'magit-log-refresh))
- (pcase major-mode
- ('magit-reflog-mode
- (user-error "Cannot change log arguments in reflog buffers"))
- ('magit-cherry-mode
- (user-error "Cannot change log arguments in cherry buffers")))
- (transient-setup 'magit-log-refresh))
- (t
- (pcase-let ((`(,args ,files) (magit-log-arguments)))
- (setq magit-buffer-log-args args)
- (unless (derived-mode-p 'magit-log-select-mode)
- (setq magit-buffer-log-files files)))
- (magit-refresh))))
+ ((not (eq transient-current-command 'magit-log-refresh))
+ (pcase major-mode
+ ('magit-reflog-mode
+ (user-error "Cannot change log arguments in reflog buffers"))
+ ('magit-cherry-mode
+ (user-error "Cannot change log arguments in cherry buffers")))
+ (transient-setup 'magit-log-refresh))
+ (t
+ (pcase-let ((`(,args ,files) (magit-log-arguments)))
+ (setq magit-buffer-log-args args)
+ (unless (derived-mode-p 'magit-log-select-mode)
+ (setq magit-buffer-log-files files)))
+ (magit-refresh))))
;;;; Infix Commands
@@ -1257,17 +1257,17 @@ Do not add this to a hook variable."
(setq args (remove "--show-signature" args))
(let ((limit (magit-log-get-commit-limit args)))
(cond
- ((not limit)
- (message
- "Dropping --show-signature because -n isn't set (see %s)"
- 'magit-log-show-signatures-limit)
- "")
- ((> limit magit-log-show-signatures-limit)
- (message
- "Dropping --show-signature because -n is larger than %s"
- 'magit-log-show-signatures-limit)
- "")
- ("%G?"))))
+ ((not limit)
+ (message
+ "Dropping --show-signature because -n isn't set (see %s)"
+ 'magit-log-show-signatures-limit)
+ "")
+ ((> limit magit-log-show-signatures-limit)
+ (message
+ "Dropping --show-signature because -n is larger than %s"
+ 'magit-log-show-signatures-limit)
+ "")
+ ("%G?"))))
(if magit-log-margin-show-committer-date "%ct" "%at")
(if magit-log-trailer-labels
(format "%%(trailers:%s%s)"
diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el
index fde571379e9..e2aba5876b2 100644
--- a/lisp/magit-mode.el
+++ b/lisp/magit-mode.el
@@ -1098,21 +1098,21 @@ The arguments are for internal use."
(when magit-refresh-verbose
(message "%s buffer `%s'..." action (buffer-name)))
(cond
- (created
- (funcall refresh)
- (cond (initial-section (funcall initial-section))
- (select-section (funcall select-section))))
- (t
- (deactivate-mark)
- (setq magit-section-pre-command-section nil)
- (setq magit-section-highlight-overlays nil)
- (setq magit-section-selection-overlays nil)
- (setq magit-section-highlighted-sections nil)
- (setq magit-section-focused-sections nil)
- (let ((positions (magit--refresh-buffer-get-positions)))
- (funcall refresh)
- (cond (select-section (funcall select-section))
- ((magit--refresh-buffer-set-positions positions))))))
+ (created
+ (funcall refresh)
+ (cond (initial-section (funcall initial-section))
+ (select-section (funcall select-section))))
+ (t
+ (deactivate-mark)
+ (setq magit-section-pre-command-section nil)
+ (setq magit-section-highlight-overlays nil)
+ (setq magit-section-selection-overlays nil)
+ (setq magit-section-highlighted-sections nil)
+ (setq magit-section-focused-sections nil)
+ (let ((positions (magit--refresh-buffer-get-positions)))
+ (funcall refresh)
+ (cond (select-section (funcall select-section))
+ ((magit--refresh-buffer-set-positions positions))))))
(let ((magit-section-cache-visibility nil))
(magit-section-show magit-root-section))
(run-hooks 'magit-refresh-buffer-hook)
@@ -1580,16 +1580,16 @@ The additional output can be found in the *Messages*
buffer."
(defun magit-run-hook-with-benchmark (hook)
(cond
- ((not hook))
- (magit-refresh-verbose
- (message "Running %s..." hook)
- (message "Running %s...done (%.3fs)" hook
- (benchmark-elapse
- (run-hook-wrapped
- hook
- (lambda (fn)
- (message " %-50s %f" fn (benchmark-elapse (funcall
fn))))))))
- ((run-hooks hook))))
+ ((not hook))
+ (magit-refresh-verbose
+ (message "Running %s..." hook)
+ (message "Running %s...done (%.3fs)" hook
+ (benchmark-elapse
+ (run-hook-wrapped
+ hook
+ (lambda (fn)
+ (message " %-50s %f" fn (benchmark-elapse (funcall
fn))))))))
+ ((run-hooks hook))))
(defun magit-file-region-line-numbers ()
"Return the bounds of the region as line numbers.
diff --git a/lisp/magit-process.el b/lisp/magit-process.el
index 637bd4aad0c..7c7e6ae8423 100644
--- a/lisp/magit-process.el
+++ b/lisp/magit-process.el
@@ -805,26 +805,26 @@ Magit status buffer."
(defun magit-process--format-arguments (program args)
(cond
- ((and args (equal program (magit-git-executable)))
- (let ((global (magit-process-git-arguments--length)))
- (concat
- (propertize (file-name-nondirectory program)
- 'font-lock-face 'magit-section-heading)
- " "
- (propertize (magit--ellipsis)
- 'font-lock-face 'magit-section-heading
- 'help-echo (string-join (seq-take args global) " "))
- " "
- (propertize (mapconcat #'shell-quote-argument (seq-drop args global) "
")
- 'font-lock-face 'magit-section-heading))))
- ((and args (equal program shell-file-name))
- (propertize (cadr args)
- 'font-lock-face 'magit-section-heading))
- ((concat (propertize (file-name-nondirectory program)
- 'font-lock-face 'magit-section-heading)
- " "
- (propertize (mapconcat #'shell-quote-argument args " ")
- 'font-lock-face 'magit-section-heading)))))
+ ((and args (equal program (magit-git-executable)))
+ (let ((global (magit-process-git-arguments--length)))
+ (concat
+ (propertize (file-name-nondirectory program)
+ 'font-lock-face 'magit-section-heading)
+ " "
+ (propertize (magit--ellipsis)
+ 'font-lock-face 'magit-section-heading
+ 'help-echo (string-join (seq-take args global) " "))
+ " "
+ (propertize (mapconcat #'shell-quote-argument (seq-drop args global) "
")
+ 'font-lock-face 'magit-section-heading))))
+ ((and args (equal program shell-file-name))
+ (propertize (cadr args)
+ 'font-lock-face 'magit-section-heading))
+ ((concat (propertize (file-name-nondirectory program)
+ 'font-lock-face 'magit-section-heading)
+ " "
+ (propertize (mapconcat #'shell-quote-argument args " ")
+ 'font-lock-face 'magit-section-heading)))))
(defun magit-process-truncate-log ()
(let* ((head nil)
diff --git a/lisp/magit-pull.el b/lisp/magit-pull.el
index e5b2b4b25ee..fe23d77c737 100644
--- a/lisp/magit-pull.el
+++ b/lisp/magit-pull.el
@@ -138,15 +138,15 @@ the upstream."
(merge (magit-get "branch" branch "merge"))
(u (magit--propertize-face "@{upstream}" 'bold)))
(cond
- ((magit--unnamed-upstream-p remote merge)
- (format "%s of %s"
- (magit--propertize-face merge 'magit-branch-remote)
- (magit--propertize-face remote 'bold)))
- ((magit--valid-upstream-p remote merge)
- (concat u ", replacing non-existent"))
- ((or remote merge)
- (concat u ", replacing invalid"))
- ((concat u ", setting that")))))))
+ ((magit--unnamed-upstream-p remote merge)
+ (format "%s of %s"
+ (magit--propertize-face merge 'magit-branch-remote)
+ (magit--propertize-face remote 'bold)))
+ ((magit--valid-upstream-p remote merge)
+ (concat u ", replacing non-existent"))
+ ((or remote merge)
+ (concat u ", replacing invalid"))
+ ((concat u ", setting that")))))))
;;;###autoload
(defun magit-pull-branch (source args)
diff --git a/lisp/magit-push.el b/lisp/magit-push.el
index ea1b9a2ea1d..75aa9b02e89 100644
--- a/lisp/magit-push.el
+++ b/lisp/magit-push.el
@@ -100,14 +100,14 @@ argument the push-remote can be changed before pushed to
it."
(remote (magit-get-push-remote branch))
(v (magit--push-remote-variable branch t)))
(cond
- (target)
- ((member remote (magit-list-remotes))
- (format "%s, creating it"
- (magit--propertize-face (concat remote "/" branch)
- 'magit-branch-remote)))
- (remote
- (format "%s, replacing invalid" v))
- ((format "%s, setting that" v)))))
+ (target)
+ ((member remote (magit-list-remotes))
+ (format "%s, creating it"
+ (magit--propertize-face (concat remote "/" branch)
+ 'magit-branch-remote)))
+ (remote
+ (format "%s, replacing invalid" v))
+ ((format "%s, setting that" v)))))
;;;###autoload(autoload 'magit-push-current-to-upstream "magit-push" nil t)
(transient-define-suffix magit-push-current-to-upstream (args)
@@ -160,17 +160,17 @@ the upstream."
(merge (magit-get "branch" branch "merge"))
(u (magit--propertize-face "@{upstream}" 'bold)))
(cond
- ((magit--unnamed-upstream-p remote merge)
- (format "%s as %s"
- (magit--propertize-face remote 'bold)
- (magit--propertize-face merge 'magit-branch-remote)))
- ((magit--valid-upstream-p remote merge)
- (format "%s creating %s"
- (magit--propertize-face remote 'magit-branch-remote)
- (magit--propertize-face merge 'magit-branch-remote)))
- ((or remote merge)
- (concat u ", creating it and replacing invalid"))
- ((concat u ", creating it")))))))
+ ((magit--unnamed-upstream-p remote merge)
+ (format "%s as %s"
+ (magit--propertize-face remote 'bold)
+ (magit--propertize-face merge 'magit-branch-remote)))
+ ((magit--valid-upstream-p remote merge)
+ (format "%s creating %s"
+ (magit--propertize-face remote 'magit-branch-remote)
+ (magit--propertize-face merge 'magit-branch-remote)))
+ ((or remote merge)
+ (concat u ", creating it and replacing invalid"))
+ ((concat u ", creating it")))))))
;;;###autoload
(defun magit-push-current (target args)
@@ -326,17 +326,17 @@ what this command will do. To add it use something like:
(format "%s to %s"
(magit--propertize-face branch
'magit-branch-current)
(cond
- ((string-prefix-p "refs/heads/" ref)
- (magit--propertize-face
- (format "%s/%s" remote
- (substring ref (length "refs/heads/")))
- 'magit-branch-remote))
- ((not (string-match "/" ref))
- (magit--propertize-face (format "%s/%s" remote
ref)
- 'magit-branch-remote))
- ((format "%s as %s"
- (magit--propertize-face remote 'bold)
- (magit--propertize-face ref 'bold)))))
+ ((string-prefix-p "refs/heads/" ref)
+ (magit--propertize-face
+ (format "%s/%s" remote
+ (substring ref (length "refs/heads/")))
+ 'magit-branch-remote))
+ ((not (string-match "/" ref))
+ (magit--propertize-face (format "%s/%s" remote
ref)
+ 'magit-branch-remote))
+ ((format "%s as %s"
+ (magit--propertize-face remote 'bold)
+ (magit--propertize-face ref 'bold)))))
"nothing (no upstream)")))
("matching" (format "all matching to %s"
(magit--propertize-face remote 'bold)))))))))
diff --git a/lisp/magit-refs.el b/lisp/magit-refs.el
index 10c7f22b539..653aa0babd3 100644
--- a/lisp/magit-refs.el
+++ b/lisp/magit-refs.el
@@ -587,36 +587,36 @@ line is inserted at all."
(split-string line "\0")
:test #'equal)))
(cond
- (head-branch
- ;; Note: Use `ref' instead of `branch' for the check
- ;; below because 'refname:short' shortens the remote
- ;; HEAD to '<remote>' instead of '<remote>/HEAD' as of
- ;; Git v2.40.0.
- (cl-assert
- (equal ref (concat "refs/remotes/" remote "/HEAD")))
- (setq head head-branch))
- ((not (equal ref (concat "refs/remotes/" remote "/HEAD")))
- ;; ^ Skip mis-configured remotes where HEAD is not a
- ;; symref. See #5092.
- (when (magit-refs--insert-refname-p branch)
- (magit-insert-section (branch branch t)
- (let ((headp (equal branch head))
- (abbrev (if magit-refs-show-remote-prefix
- branch
- (substring branch (1+ (length remote))))))
- (magit-insert-heading
- (magit-refs--format-focus-column branch)
- (magit-refs--propertize-branch
- abbrev ref (and headp 'magit-branch-remote-head))
- (make-string
- (max 1 (- (if (consp magit-refs-primary-column-width)
- (car magit-refs-primary-column-width)
- magit-refs-primary-column-width)
- (length abbrev)))
- ?\s)
- (and msg (magit-log--wash-summary msg))))
- (magit-refs--maybe-format-margin branch)
- (magit-refs--insert-cherry-commits branch))))))))
+ (head-branch
+ ;; Note: Use `ref' instead of `branch' for the check
+ ;; below because 'refname:short' shortens the remote
+ ;; HEAD to '<remote>' instead of '<remote>/HEAD' as of
+ ;; Git v2.40.0.
+ (cl-assert
+ (equal ref (concat "refs/remotes/" remote "/HEAD")))
+ (setq head head-branch))
+ ((not (equal ref (concat "refs/remotes/" remote "/HEAD")))
+ ;; ^ Skip mis-configured remotes where HEAD is not a
+ ;; symref. See #5092.
+ (when (magit-refs--insert-refname-p branch)
+ (magit-insert-section (branch branch t)
+ (let ((headp (equal branch head))
+ (abbrev (if magit-refs-show-remote-prefix
+ branch
+ (substring branch (1+ (length remote))))))
+ (magit-insert-heading
+ (magit-refs--format-focus-column branch)
+ (magit-refs--propertize-branch
+ abbrev ref (and headp 'magit-branch-remote-head))
+ (make-string
+ (max 1 (- (if (consp magit-refs-primary-column-width)
+ (car magit-refs-primary-column-width)
+ magit-refs-primary-column-width)
+ (length abbrev)))
+ ?\s)
+ (and msg (magit-log--wash-summary msg))))
+ (magit-refs--maybe-format-margin branch)
+ (magit-refs--insert-cherry-commits branch))))))))
(insert ?\n)
(magit-make-margin-overlay))))
diff --git a/lisp/magit-remote.el b/lisp/magit-remote.el
index f52851ec4b4..770a7082d08 100644
--- a/lisp/magit-remote.el
+++ b/lisp/magit-remote.el
@@ -262,28 +262,28 @@ Delete the symbolic-ref \"refs/remotes/<remote>/HEAD\"."
(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 `%s': " oldname
- "but the upstreams of some local branches might need updating."
- "Name of upstream branches to replace with" newname)))
- (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")))))))
+ ((equal oldname newname)
+ (setq oldname
+ (read-string
+ (format
+ "Name of default branch is still `%s', %s\n%s `%s': " oldname
+ "but the upstreams of some local branches might need updating."
+ "Name of upstream branches to replace with" newname)))
+ (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)
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index c86862f9d76..4999f169cf3 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -817,33 +817,33 @@ the beginning of the current section."
(user-error "No previous section")
(let ((section (magit-current-section)) children)
(cond
- ((and (= (point)
- (1- (oref section end)))
- (setq children (oref section children)))
- (magit-section-goto (car (last children))))
- ((and (oref section parent)
- (not (= (point)
- (oref section start))))
- (magit-section-goto section))
- (t
- (let ((prev (car (magit-section-siblings section 'prev))))
- (if prev
- (while (and (not (oref prev hidden))
- (setq children (oref prev children)))
- (setq prev (car (last children))))
- (setq prev (oref section parent)))
- (cond (prev
- (magit-section-goto prev))
- ((oref section parent)
- (user-error "No previous section"))
- ;; Eob special cases.
- ((not (get-text-property (1- (point)) 'invisible))
- (magit-section-goto -1))
- (t
- (goto-char (previous-single-property-change
- (1- (point)) 'invisible))
- (forward-line -1)
- (magit-section-goto (magit-current-section))))))))))
+ ((and (= (point)
+ (1- (oref section end)))
+ (setq children (oref section children)))
+ (magit-section-goto (car (last children))))
+ ((and (oref section parent)
+ (not (= (point)
+ (oref section start))))
+ (magit-section-goto section))
+ (t
+ (let ((prev (car (magit-section-siblings section 'prev))))
+ (if prev
+ (while (and (not (oref prev hidden))
+ (setq children (oref prev children)))
+ (setq prev (car (last children))))
+ (setq prev (oref section parent)))
+ (cond (prev
+ (magit-section-goto prev))
+ ((oref section parent)
+ (user-error "No previous section"))
+ ;; Eob special cases.
+ ((not (get-text-property (1- (point)) 'invisible))
+ (magit-section-goto -1))
+ (t
+ (goto-char (previous-single-property-change
+ (1- (point)) 'invisible))
+ (forward-line -1)
+ (magit-section-goto (magit-current-section))))))))))
(defun magit-section-up ()
"Move to the beginning of the parent section."
@@ -1442,19 +1442,19 @@ anything this time around.
(oset obj hidden
(let (set old)
(cond
- ((setq set (run-hook-with-args-until-success
- 'magit-section-set-visibility-hook obj))
- (eq set 'hide))
- ((setq old (and (not magit-section-preserve-visibility)
- magit-insert-section--oldroot
- (magit-get-section
- (magit-section-ident obj)
- magit-insert-section--oldroot)))
- (oref old hidden))
- ((setq set (magit-section-match-assoc
- obj magit-section-initial-visibility-alist))
- (eq (if (functionp set) (funcall set obj) set) 'hide))
- (hide)))))
+ ((setq set (run-hook-with-args-until-success
+ 'magit-section-set-visibility-hook obj))
+ (eq set 'hide))
+ ((setq old (and (not magit-section-preserve-visibility)
+ magit-insert-section--oldroot
+ (magit-get-section
+ (magit-section-ident obj)
+ magit-insert-section--oldroot)))
+ (oref old hidden))
+ ((setq set (magit-section-match-assoc
+ obj magit-section-initial-visibility-alist))
+ (eq (if (functionp set) (funcall set obj) set) 'hide))
+ (hide)))))
(unless (oref obj keymap)
(let ((type (oref obj type)))
(oset obj keymap
@@ -1471,24 +1471,24 @@ anything this time around.
(oset obj end (point-marker))
(set-marker-insertion-type (oref obj start) t))
(cond
- ((eq obj magit-root-section)
- (when (eq magit-section-inhibit-markers 'delay)
- (setq magit-section-inhibit-markers nil)
- (magit-map-sections
- (lambda (section)
- (oset section start (copy-marker (oref section start) t))
- (oset section end (copy-marker (oref section end) t))))))
- (t
- (magit-section--set-section-properties obj)
- (magit-section-maybe-add-heading-map obj)
- (when (oref obj children)
- (magit-insert-child-count obj))
- (if magit-section-insert-in-reverse
- (push obj (oref (oref obj parent) children))
- (let ((parent (oref obj parent)))
- (oset parent children
- (nconc (oref parent children)
- (list obj)))))))
+ ((eq obj magit-root-section)
+ (when (eq magit-section-inhibit-markers 'delay)
+ (setq magit-section-inhibit-markers nil)
+ (magit-map-sections
+ (lambda (section)
+ (oset section start (copy-marker (oref section start) t))
+ (oset section end (copy-marker (oref section end) t))))))
+ (t
+ (magit-section--set-section-properties obj)
+ (magit-section-maybe-add-heading-map obj)
+ (when (oref obj children)
+ (magit-insert-child-count obj))
+ (if magit-section-insert-in-reverse
+ (push obj (oref (oref obj parent) children))
+ (let ((parent (oref obj parent)))
+ (oset parent children
+ (nconc (oref parent children)
+ (list obj)))))))
(when magit-section-insert-in-reverse
(oset obj children (nreverse (oref obj children)))))
@@ -1665,24 +1665,24 @@ This function is called by `magit-insert-section' after
that has
evaluated its BODY. Admittedly that's a bit of a hack."
(let (content count)
(cond
- ((not (and magit-section-show-child-count
- (setq content (oref section content))
- (setq count (length (oref section children)))
- (> count 0))))
- ((eq (char-before (- content 1)) ?:)
- (save-excursion
- (goto-char (- content 2))
- (insert (magit--propertize-face (format " (%s)" count)
- 'magit-section-child-count))
- (delete-char 1)))
- ((and (eq (char-before (- content 4)) ?\s)
- (eq (char-before (- content 3)) ?\()
- (eq (char-before (- content 2)) ?t )
- (eq (char-before (- content 1)) ?\)))
- (save-excursion
- (goto-char (- content 3))
- (delete-char 1)
- (insert (format "%s" count)))))))
+ ((not (and magit-section-show-child-count
+ (setq content (oref section content))
+ (setq count (length (oref section children)))
+ (> count 0))))
+ ((eq (char-before (- content 1)) ?:)
+ (save-excursion
+ (goto-char (- content 2))
+ (insert (magit--propertize-face (format " (%s)" count)
+ 'magit-section-child-count))
+ (delete-char 1)))
+ ((and (eq (char-before (- content 4)) ?\s)
+ (eq (char-before (- content 3)) ?\()
+ (eq (char-before (- content 2)) ?t )
+ (eq (char-before (- content 1)) ?\)))
+ (save-excursion
+ (goto-char (- content 3))
+ (delete-char 1)
+ (insert (format "%s" count)))))))
(defun magit-section--opportunistic-wash (section)
(when-let ((washer (oref section washer)))
@@ -1739,37 +1739,37 @@ evaluated its BODY. Admittedly that's a bit of a hack."
(let ((section (magit-current-section))
(focused (magit-focused-sections)))
(cond
- ((or force
- magit-section-highlight-force-update
- (xor magit-section-pre-command-region-p (region-active-p))
- (not (eq magit-section-pre-command-section section)))
- (let ((inhibit-read-only t)
- (deactivate-mark nil)
- (selection (magit-region-sections)))
- (mapc #'delete-overlay magit-section-highlight-overlays)
- (mapc #'delete-overlay magit-section-selection-overlays)
- (setq magit-section-highlight-overlays nil)
- (setq magit-section-selection-overlays nil)
- (cond ((magit-section--maybe-enable-long-lines-shortcuts))
- ((eq section magit-root-section))
- ((not magit-section-highlight-current)
- (when selection
- (magit-section-highlight-selection selection)))
- ((not selection)
- (magit-section-highlight section))
- (t
- (mapc #'magit-section-highlight selection)
- (magit-section-highlight-selection selection)))
- (dolist (section (cl-union magit-section-highlighted-sections focused))
- (when (slot-boundp section 'painted)
- (magit-section-update-paint section focused)))
- (restore-buffer-modified-p nil)))
- ((and (eq magit-section-pre-command-section section)
- magit-section-selection-overlays
- (region-active-p)
- (not (magit-region-sections)))
- (mapc #'delete-overlay magit-section-selection-overlays)
- (setq magit-section-selection-overlays nil)))
+ ((or force
+ magit-section-highlight-force-update
+ (xor magit-section-pre-command-region-p (region-active-p))
+ (not (eq magit-section-pre-command-section section)))
+ (let ((inhibit-read-only t)
+ (deactivate-mark nil)
+ (selection (magit-region-sections)))
+ (mapc #'delete-overlay magit-section-highlight-overlays)
+ (mapc #'delete-overlay magit-section-selection-overlays)
+ (setq magit-section-highlight-overlays nil)
+ (setq magit-section-selection-overlays nil)
+ (cond ((magit-section--maybe-enable-long-lines-shortcuts))
+ ((eq section magit-root-section))
+ ((not magit-section-highlight-current)
+ (when selection
+ (magit-section-highlight-selection selection)))
+ ((not selection)
+ (magit-section-highlight section))
+ (t
+ (mapc #'magit-section-highlight selection)
+ (magit-section-highlight-selection selection)))
+ (dolist (section (cl-union magit-section-highlighted-sections
focused))
+ (when (slot-boundp section 'painted)
+ (magit-section-update-paint section focused)))
+ (restore-buffer-modified-p nil)))
+ ((and (eq magit-section-pre-command-section section)
+ magit-section-selection-overlays
+ (region-active-p)
+ (not (magit-region-sections)))
+ (mapc #'delete-overlay magit-section-selection-overlays)
+ (setq magit-section-selection-overlays nil)))
(setq magit-section-highlight-force-update nil)
(magit-section-maybe-paint-visibility-ellipses)))
@@ -1779,22 +1779,22 @@ evaluated its BODY. Admittedly that's a bit of a hack."
(headlight heading-highlight-face)
(selective (magit-section-selective-highlight-p section)))
(cond
- (selective
- (magit-section-highlight-range start (or content end) headlight)
- (cond (children
- (let ((child-start (oref (car children) start)))
- (when (and content (< content child-start))
- (magit-section-highlight-range content child-start)))
- (mapc #'magit-section-highlight children))
- ((and content (not (slot-boundp section 'painted)))
- (magit-section-highlight-range content end))
- ;; Unfortunate kludge for delayed hunk refinement.
- ((magit-section--refine section))))
- (headlight
- (magit-section-highlight-range start (or content end) headlight)
- (when content
- (magit-section-highlight-range (if headlight content start) end)))
- ((magit-section-highlight-range start end)))))
+ (selective
+ (magit-section-highlight-range start (or content end) headlight)
+ (cond (children
+ (let ((child-start (oref (car children) start)))
+ (when (and content (< content child-start))
+ (magit-section-highlight-range content child-start)))
+ (mapc #'magit-section-highlight children))
+ ((and content (not (slot-boundp section 'painted)))
+ (magit-section-highlight-range content end))
+ ;; Unfortunate kludge for delayed hunk refinement.
+ ((magit-section--refine section))))
+ (headlight
+ (magit-section-highlight-range start (or content end) headlight)
+ (when content
+ (magit-section-highlight-range (if headlight content start) end)))
+ ((magit-section-highlight-range start end)))))
(defun magit-section-highlight-selection (selection)
(when magit-section-highlight-selection
@@ -2474,21 +2474,21 @@ This is like moving to POS and then calling `pos-eol'."
(mapcan
(lambda (section)
(cond
- (magit--imenu-group-types
- (and (if (eq (car-safe magit--imenu-group-types) 'not)
- (not (magit-section-match
- (cdr magit--imenu-group-types)
- section))
- (magit-section-match magit--imenu-group-types
section))
- (and-let ((children (oref section children)))
- `((,(magit--imenu-index-name section)
- ,@(mapcar (##cons (magit--imenu-index-name %)
- (oref % start))
- children))))))
- (magit--imenu-item-types
- (and (magit-section-match magit--imenu-item-types section)
- `((,(magit--imenu-index-name section)
- . ,(oref section start)))))))
+ (magit--imenu-group-types
+ (and (if (eq (car-safe magit--imenu-group-types) 'not)
+ (not (magit-section-match
+ (cdr magit--imenu-group-types)
+ section))
+ (magit-section-match magit--imenu-group-types
section))
+ (and-let ((children (oref section children)))
+ `((,(magit--imenu-index-name section)
+ ,@(mapcar (##cons (magit--imenu-index-name %)
+ (oref % start))
+ children))))))
+ (magit--imenu-item-types
+ (and (magit-section-match magit--imenu-item-types section)
+ `((,(magit--imenu-index-name section)
+ . ,(oref section start)))))))
(oref magit-root-section children))))
(if (and magit--imenu-group-types (symbolp magit--imenu-group-types))
(cdar index)
@@ -2501,18 +2501,18 @@ This is like moving to POS and then calling `pos-eol'."
(oref section end))))))
(save-match-data
(cond
- ((and (magit-section-match [commit logbuf] section)
- (string-match "[^ ]+\\([ *|]*\\).+" heading))
- (replace-match " " t t heading 1))
- ((magit-section-match
- '([branch local branchbuf] [tag tags branchbuf]) section)
- (oref section value))
- ((magit-section-match [branch remote branchbuf] section)
- (concat (oref (oref section parent) value) "/"
- (oref section value)))
- ((string-match " ([0-9]+)\\'" heading)
- (substring heading 0 (match-beginning 0)))
- (heading)))))
+ ((and (magit-section-match [commit logbuf] section)
+ (string-match "[^ ]+\\([ *|]*\\).+" heading))
+ (replace-match " " t t heading 1))
+ ((magit-section-match
+ '([branch local branchbuf] [tag tags branchbuf]) section)
+ (oref section value))
+ ((magit-section-match [branch remote branchbuf] section)
+ (concat (oref (oref section parent) value) "/"
+ (oref section value)))
+ ((string-match " ([0-9]+)\\'" heading)
+ (substring heading 0 (match-beginning 0)))
+ (heading)))))
(defun magit--imenu-goto-function (_name position &rest _rest)
"Go to the section at POSITION.
diff --git a/lisp/magit-sequence.el b/lisp/magit-sequence.el
index 18b586c704f..3702d4bd239 100644
--- a/lisp/magit-sequence.el
+++ b/lisp/magit-sequence.el
@@ -95,12 +95,12 @@
"Resume the current cherry-pick or revert sequence."
(interactive)
(cond
- ((not (magit-sequencer-in-progress-p))
- (user-error "No cherry-pick or revert in progress"))
- ((magit-anything-unmerged-p)
- (user-error "Cannot continue due to unresolved conflicts"))
- ((magit-run-git-sequencer
- (if (magit-revert-in-progress-p) "revert" "cherry-pick") "--continue"))))
+ ((not (magit-sequencer-in-progress-p))
+ (user-error "No cherry-pick or revert in progress"))
+ ((magit-anything-unmerged-p)
+ (user-error "Cannot continue due to unresolved conflicts"))
+ ((magit-run-git-sequencer
+ (if (magit-revert-in-progress-p) "revert" "cherry-pick") "--continue"))))
;;;###autoload
(defun magit-sequencer-skip ()
@@ -117,13 +117,13 @@
This discards all changes made since the sequence started."
(interactive)
(cond
- ((not (magit-sequencer-in-progress-p))
- (user-error "No cherry-pick or revert in progress"))
- ((magit-revert-in-progress-p)
- (magit-confirm 'abort-revert "Really abort revert")
- (magit-run-git-sequencer "revert" "--abort"))
- ((magit-confirm 'abort-cherry-pick "Really abort cherry-pick")
- (magit-run-git-sequencer "cherry-pick" "--abort"))))
+ ((not (magit-sequencer-in-progress-p))
+ (user-error "No cherry-pick or revert in progress"))
+ ((magit-revert-in-progress-p)
+ (magit-confirm 'abort-revert "Really abort revert")
+ (magit-run-git-sequencer "revert" "--abort"))
+ ((magit-confirm 'abort-cherry-pick "Really abort cherry-pick")
+ (magit-run-git-sequencer "cherry-pick" "--abort"))))
(defun magit-sequencer-in-progress-p ()
(or (magit-cherry-pick-in-progress-p)
@@ -308,32 +308,32 @@ the process manually."
(process-put process 'inhibit-refresh t)
(magit-process-sentinel process event)
(cond
- ((magit-rev-equal tip src)
- (magit-call-git "update-ref"
- "-m" (format "reset: moving to %s" keep)
- (magit-ref-fullname src)
- keep tip)
- (if (not checkout-dst)
- (magit-run-git "checkout" src)
- (magit-refresh)))
- (t
- (magit-git "checkout" src)
- (with-environment-variables
- (("GIT_SEQUENCE_EDITOR"
- (format "%s -i -ne '/^pick (%s)/ or print'"
- magit-perl-executable
- (mapconcat #'magit-rev-abbrev commits "|"))))
- (magit-run-git-sequencer "rebase" "-i" keep))
- (when checkout-dst
- (set-process-sentinel
- magit-this-process
- (lambda (process event)
- (when (memq (process-status process) '(exit signal))
- (if (> (process-exit-status process) 0)
- (magit-process-sentinel process event)
- (process-put process 'inhibit-refresh t)
- (magit-process-sentinel process event)
- (magit-run-git "checkout" dst))))))))))))))))
+ ((magit-rev-equal tip src)
+ (magit-call-git "update-ref"
+ "-m" (format "reset: moving to %s" keep)
+ (magit-ref-fullname src)
+ keep tip)
+ (if (not checkout-dst)
+ (magit-run-git "checkout" src)
+ (magit-refresh)))
+ (t
+ (magit-git "checkout" src)
+ (with-environment-variables
+ (("GIT_SEQUENCE_EDITOR"
+ (format "%s -i -ne '/^pick (%s)/ or print'"
+ magit-perl-executable
+ (mapconcat #'magit-rev-abbrev commits "|"))))
+ (magit-run-git-sequencer "rebase" "-i" keep))
+ (when checkout-dst
+ (set-process-sentinel
+ magit-this-process
+ (lambda (process event)
+ (when (memq (process-status process) '(exit signal))
+ (if (> (process-exit-status process) 0)
+ (magit-process-sentinel process event)
+ (process-put process 'inhibit-refresh t)
+ (magit-process-sentinel process event)
+ (magit-run-git "checkout" dst))))))))))))))))
(defun magit--cherry-pick (commits args &optional revert)
(let ((command (if revert "revert" "cherry-pick")))
@@ -345,16 +345,16 @@ the process manually."
(if revert "revert" "cherry-pick")
(let ((merges (seq-filter #'magit-merge-commit-p commits)))
(cond
- ((not merges)
- (seq-remove (##string-prefix-p "--mainline=" %) args))
- ((cl-set-difference commits merges :test #'equal)
- (user-error "Cannot %s merge and non-merge commits at once"
- command))
- ((seq-find (##string-prefix-p "--mainline=" %) args)
- args)
- ((cons (format "--mainline=%s"
- (read-number "Replay merges relative to parent: "))
- args))))
+ ((not merges)
+ (seq-remove (##string-prefix-p "--mainline=" %) args))
+ ((cl-set-difference commits merges :test #'equal)
+ (user-error "Cannot %s merge and non-merge commits at once"
+ command))
+ ((seq-find (##string-prefix-p "--mainline=" %) args)
+ args)
+ ((cons (format "--mainline=%s"
+ (read-number "Replay merges relative to parent: "))
+ args))))
commits)))
(defun magit-cherry-pick-in-progress-p ()
@@ -491,11 +491,11 @@ without prompting."
"Resume the current patch applying sequence."
(interactive)
(cond
- ((not (magit-am-in-progress-p))
- (user-error "Not applying any patches"))
- ((magit-anything-unstaged-p t)
- (user-error "Cannot continue due to unstaged changes"))
- ((magit-run-git-sequencer "am" "--continue"))))
+ ((not (magit-am-in-progress-p))
+ (user-error "Not applying any patches"))
+ ((magit-anything-unstaged-p t)
+ (user-error "Cannot continue due to unstaged changes"))
+ ((magit-run-git-sequencer "am" "--continue"))))
;;;###autoload
(defun magit-am-skip ()
@@ -628,13 +628,13 @@ the upstream."
(merge (magit-get "branch" branch "merge"))
(u (magit--propertize-face "@{upstream}" 'bold)))
(cond
- ((magit--unnamed-upstream-p remote merge)
- (concat u ", replacing unnamed"))
- ((magit--valid-upstream-p remote merge)
- (concat u ", replacing non-existent"))
- ((or remote merge)
- (concat u ", replacing invalid"))
- ((concat u ", setting that")))))))
+ ((magit--unnamed-upstream-p remote merge)
+ (concat u ", replacing unnamed"))
+ ((magit--valid-upstream-p remote merge)
+ (concat u ", replacing non-existent"))
+ ((or remote merge)
+ (concat u ", replacing invalid"))
+ ((concat u ", setting that")))))))
;;;###autoload
(defun magit-rebase-branch (target args)
@@ -823,25 +823,25 @@ In some cases this pops up a commit message buffer for
you do
edit. With a prefix argument the old message is reused as-is."
(interactive "P")
(cond
- ((not (magit-rebase-in-progress-p))
- (user-error "No rebase in progress"))
- ((magit-anything-unstaged-p t)
- (user-error "Cannot continue rebase with unstaged changes"))
- (t
- (let ((dir (magit-gitdir)))
- (when (and (magit-anything-staged-p)
- (file-exists-p (expand-file-name "rebase-merge" dir))
- (not (member (magit-toplevel)
- magit--rebase-public-edit-confirmed)))
- (magit-commit-amend-assert
- (magit-file-line (expand-file-name "rebase-merge/orig-head" dir)))))
- (if noedit
- (with-environment-variables (("GIT_EDITOR" "true"))
- (magit-run-git-async (magit--rebase-resume-command) "--continue")
- (set-process-sentinel magit-this-process
- #'magit-sequencer-process-sentinel)
- magit-this-process)
- (magit-run-git-sequencer (magit--rebase-resume-command) "--continue")))))
+ ((not (magit-rebase-in-progress-p))
+ (user-error "No rebase in progress"))
+ ((magit-anything-unstaged-p t)
+ (user-error "Cannot continue rebase with unstaged changes"))
+ (t
+ (let ((dir (magit-gitdir)))
+ (when (and (magit-anything-staged-p)
+ (file-exists-p (expand-file-name "rebase-merge" dir))
+ (not (member (magit-toplevel)
+ magit--rebase-public-edit-confirmed)))
+ (magit-commit-amend-assert
+ (magit-file-line (expand-file-name "rebase-merge/orig-head" dir)))))
+ (if noedit
+ (with-environment-variables (("GIT_EDITOR" "true"))
+ (magit-run-git-async (magit--rebase-resume-command) "--continue")
+ (set-process-sentinel magit-this-process
+ #'magit-sequencer-process-sentinel)
+ magit-this-process)
+ (magit-run-git-sequencer (magit--rebase-resume-command)
"--continue")))))
;;;###autoload
(defun magit-rebase-skip ()
@@ -1066,37 +1066,37 @@ status buffer (i.e., the reverse of how they will be
applied)."
(if-let ((matched (car (assoc (##equal (magit-patch-id %) id) done))))
(setq stop matched)
(cond
- ((assoc (##magit-rev-equal % stop) done)
- ;; The commit's testament has been executed.
- (magit-sequence-insert-commit "void" stop 'magit-sequence-drop))
- ;; The faith of the commit is still undecided...
- ((magit-anything-unmerged-p)
- ;; ...and time travel isn't for the faint of heart.
- (magit-sequence-insert-commit "join" stop 'magit-sequence-part))
- ((magit-anything-modified-p t)
- ;; ...and the dust hasn't settled yet...
- (magit-sequence-insert-commit
- (let* ((magit--refresh-cache nil)
- (staged (magit-commit-tree "oO" nil "HEAD"))
- (unstaged (magit-commit-worktree "oO" "--reset")))
- (cond
- ;; ...but we could end up at the same tree just by committing.
- ((or (magit-rev-equal staged stop)
- (magit-rev-equal unstaged stop))
- "goal")
- ;; ...but the changes are still there, untainted.
- ((or (equal (magit-patch-id staged) id)
- (equal (magit-patch-id unstaged) id))
- "same")
- ;; ...and some changes are gone and/or others were added.
- ("work")))
- stop 'magit-sequence-part))
- ;; The commit is definitely gone...
- ((assoc (##magit-rev-equal % stop) done)
- ;; ...but all of its changes are still in effect.
- (magit-sequence-insert-commit "poof" stop 'magit-sequence-drop))
- ;; ...and some changes are gone and/or other changes were added.
- ((magit-sequence-insert-commit "gone" stop 'magit-sequence-drop)))
+ ((assoc (##magit-rev-equal % stop) done)
+ ;; The commit's testament has been executed.
+ (magit-sequence-insert-commit "void" stop 'magit-sequence-drop))
+ ;; The faith of the commit is still undecided...
+ ((magit-anything-unmerged-p)
+ ;; ...and time travel isn't for the faint of heart.
+ (magit-sequence-insert-commit "join" stop 'magit-sequence-part))
+ ((magit-anything-modified-p t)
+ ;; ...and the dust hasn't settled yet...
+ (magit-sequence-insert-commit
+ (let* ((magit--refresh-cache nil)
+ (staged (magit-commit-tree "oO" nil "HEAD"))
+ (unstaged (magit-commit-worktree "oO" "--reset")))
+ (cond
+ ;; ...but we could end up at the same tree just by
committing.
+ ((or (magit-rev-equal staged stop)
+ (magit-rev-equal unstaged stop))
+ "goal")
+ ;; ...but the changes are still there, untainted.
+ ((or (equal (magit-patch-id staged) id)
+ (equal (magit-patch-id unstaged) id))
+ "same")
+ ;; ...and some changes are gone and/or others were added.
+ ("work")))
+ stop 'magit-sequence-part))
+ ;; The commit is definitely gone...
+ ((assoc (##magit-rev-equal % stop) done)
+ ;; ...but all of its changes are still in effect.
+ (magit-sequence-insert-commit "poof" stop 'magit-sequence-drop))
+ ;; ...and some changes are gone and/or other changes were added.
+ ((magit-sequence-insert-commit "gone" stop 'magit-sequence-drop)))
(setq stop nil))))
(pcase-dolist (`(,rev ,abbrev ,msg) done)
(apply #'magit-sequence-insert-commit
diff --git a/lisp/magit-status.el b/lisp/magit-status.el
index 42a96c21e72..766e52aca04 100644
--- a/lisp/magit-status.el
+++ b/lisp/magit-status.el
@@ -622,33 +622,33 @@ arguments are for internal use only."
(insert (format "%-10s" (or keyword (if rebase "Rebase: " "Merge:
"))))
(insert
(cond
- (upstream
- (concat (and magit-status-show-hashes-in-headers
- (concat (propertize (magit-rev-format "%h" upstream)
- 'font-lock-face 'magit-hash)
- " "))
- upstream " "
- (magit-log--wash-summary
- (or (magit-rev-format "%s" upstream)
- "(no commit message)"))))
- ((magit--unnamed-upstream-p remote merge)
- (concat (propertize merge 'font-lock-face 'magit-branch-remote)
- " from "
- (propertize remote 'font-lock-face 'bold)))
- ((magit--valid-upstream-p remote merge)
- (if (equal remote ".")
- (concat
- (propertize merge 'font-lock-face 'magit-branch-local) " "
- (propertize "does not exist"
- 'font-lock-face 'magit-branch-warning))
- (format
- "%s %s %s"
- (propertize merge 'font-lock-face 'magit-branch-remote)
- (propertize "does not exist on"
- 'font-lock-face 'magit-branch-warning)
- (propertize remote 'font-lock-face 'magit-branch-remote))))
- ((propertize "invalid upstream configuration"
- 'font-lock-face 'magit-branch-warning))))
+ (upstream
+ (concat (and magit-status-show-hashes-in-headers
+ (concat (propertize (magit-rev-format "%h" upstream)
+ 'font-lock-face 'magit-hash)
+ " "))
+ upstream " "
+ (magit-log--wash-summary
+ (or (magit-rev-format "%s" upstream)
+ "(no commit message)"))))
+ ((magit--unnamed-upstream-p remote merge)
+ (concat (propertize merge 'font-lock-face 'magit-branch-remote)
+ " from "
+ (propertize remote 'font-lock-face 'bold)))
+ ((magit--valid-upstream-p remote merge)
+ (if (equal remote ".")
+ (concat
+ (propertize merge 'font-lock-face 'magit-branch-local) " "
+ (propertize "does not exist"
+ 'font-lock-face 'magit-branch-warning))
+ (format
+ "%s %s %s"
+ (propertize merge 'font-lock-face 'magit-branch-remote)
+ (propertize "does not exist on"
+ 'font-lock-face 'magit-branch-warning)
+ (propertize remote 'font-lock-face 'magit-branch-remote))))
+ ((propertize "invalid upstream configuration"
+ 'font-lock-face 'magit-branch-warning))))
(insert ?\n))))))
(defun magit-insert-push-branch-header ()
diff --git a/lisp/magit-submodule.el b/lisp/magit-submodule.el
index 24f478e2963..9a7da87ad2d 100644
--- a/lisp/magit-submodule.el
+++ b/lisp/magit-submodule.el
@@ -539,20 +539,20 @@ With a prefix argument, visit in another window."
(magit-with-toplevel
(let ((path (expand-file-name module)))
(cond
- ((file-exists-p (expand-file-name ".git" module))
- (magit-diff-visit-directory path other-window))
- ((y-or-n-p (format "Initialize submodule '%s' first?" module))
- (magit-run-git-async "submodule" "update" "--init" "--" module)
- (set-process-sentinel
- magit-this-process
- (lambda (process event)
- (let ((magit-process-raise-error t))
- (magit-process-sentinel process event))
- (when (and (eq (process-status process) 'exit)
- (= (process-exit-status process) 0))
- (magit-diff-visit-directory path other-window)))))
- ((file-exists-p path)
- (dired-jump other-window (concat path "/.")))))))
+ ((file-exists-p (expand-file-name ".git" module))
+ (magit-diff-visit-directory path other-window))
+ ((y-or-n-p (format "Initialize submodule '%s' first?" module))
+ (magit-run-git-async "submodule" "update" "--init" "--" module)
+ (set-process-sentinel
+ magit-this-process
+ (lambda (process event)
+ (let ((magit-process-raise-error t))
+ (magit-process-sentinel process event))
+ (when (and (eq (process-status process) 'exit)
+ (= (process-exit-status process) 0))
+ (magit-diff-visit-directory path other-window)))))
+ ((file-exists-p path)
+ (dired-jump other-window (concat path "/.")))))))
;;;###autoload
(defun magit-insert-modules-unpulled-from-upstream ()
diff --git a/lisp/magit-tag.el b/lisp/magit-tag.el
index a71c9817ad3..589ccc645ab 100644
--- a/lisp/magit-tag.el
+++ b/lisp/magit-tag.el
@@ -174,22 +174,22 @@ that is not the case, propose a message using a
reasonable format."
(magit-rev-format "%s" ptag))
(user-error "Use `sisyphus-create-release' first")))
(tag (cond
- ((not ptag)
- ;; Force the user to review the message used for the
- ;; initial release tag, in case they do not like the
- ;; default format.
- (cl-pushnew "--edit" args :test #'equal)
- (read-string "Create first release tag: "
- (if (and ver (string-match-p "\\`[0-9]" ver))
- (concat "v" ver)
- ver)))
- (ver
- (concat (and (string-match magit-release-tag-regexp ptag)
- (match-str 1 ptag))
- ver))
- ((read-string (format "Create release tag (previous was %s): "
- ptag)
- ptag))))
+ ((not ptag)
+ ;; Force the user to review the message used for the
+ ;; initial release tag, in case they do not like the
+ ;; default format.
+ (cl-pushnew "--edit" args :test #'equal)
+ (read-string "Create first release tag: "
+ (if (and ver (string-match-p "\\`[0-9]" ver))
+ (concat "v" ver)
+ ver)))
+ (ver
+ (concat (and (string-match magit-release-tag-regexp ptag)
+ (match-str 1 ptag))
+ ver))
+ ((read-string (format "Create release tag (previous was %s): "
+ ptag)
+ ptag))))
(ver (and (string-match magit-release-tag-regexp tag)
(match-str 2 tag))))
(list tag
diff --git a/lisp/magit-wip.el b/lisp/magit-wip.el
index 7f9eaf1b5c8..da12fa1b5b2 100644
--- a/lisp/magit-wip.el
+++ b/lisp/magit-wip.el
@@ -105,20 +105,20 @@ buffer."
:lighter magit-wip-mode-lighter
:global t
(cond
- (magit-wip-mode
- (add-hook 'after-save-hook #'magit-wip-commit-buffer-file)
- (add-hook 'magit-after-apply-functions #'magit-wip-commit)
- (add-hook 'magit-before-change-functions #'magit-wip-commit)
- (add-hook 'before-save-hook #'magit-wip-commit-initial-backup)
- (add-hook 'magit-common-git-post-commit-functions #'magit-wip-post-commit)
- (add-hook 'git-commit-post-finish-hook #'magit-wip-commit-post-editmsg))
- (t
- (remove-hook 'after-save-hook #'magit-wip-commit-buffer-file)
- (remove-hook 'magit-after-apply-functions #'magit-wip-commit)
- (remove-hook 'magit-before-change-functions #'magit-wip-commit)
- (remove-hook 'before-save-hook #'magit-wip-commit-initial-backup)
- (remove-hook 'magit-common-git-post-commit-functions
#'magit-wip-post-commit)
- (remove-hook 'git-commit-post-finish-hook
#'magit-wip-commit-post-editmsg))))
+ (magit-wip-mode
+ (add-hook 'after-save-hook #'magit-wip-commit-buffer-file)
+ (add-hook 'magit-after-apply-functions #'magit-wip-commit)
+ (add-hook 'magit-before-change-functions #'magit-wip-commit)
+ (add-hook 'before-save-hook #'magit-wip-commit-initial-backup)
+ (add-hook 'magit-common-git-post-commit-functions #'magit-wip-post-commit)
+ (add-hook 'git-commit-post-finish-hook #'magit-wip-commit-post-editmsg))
+ (t
+ (remove-hook 'after-save-hook #'magit-wip-commit-buffer-file)
+ (remove-hook 'magit-after-apply-functions #'magit-wip-commit)
+ (remove-hook 'magit-before-change-functions #'magit-wip-commit)
+ (remove-hook 'before-save-hook #'magit-wip-commit-initial-backup)
+ (remove-hook 'magit-common-git-post-commit-functions
#'magit-wip-post-commit)
+ (remove-hook 'git-commit-post-finish-hook
#'magit-wip-commit-post-editmsg))))
(defun magit-wip-commit-buffer-file (&optional msg)
"Commit visited file to a worktree work-in-progress ref."
@@ -220,29 +220,29 @@ commit message."
(defun magit-wip-update-wipref (ref wipref tree parent files msg start-msg)
(cond
- ((and (not (equal parent wipref))
- (or (not magit-wip-merge-branch)
- (not (magit-rev-verify wipref))))
- (setq start-msg (concat "start autosaving " start-msg))
- (magit-wip--update-ref wipref start-msg
- (magit-git-string "commit-tree" "--no-gpg-sign"
- "-p" parent "-m" start-msg
- (concat parent "^{tree}")))
- (setq parent wipref))
- ((and magit-wip-merge-branch
- (or (not (magit-rev-ancestor-p ref wipref))
- (not (magit-rev-ancestor-p
- (concat (magit-git-string "log" "--format=%H"
- "-1" "--merges" wipref)
- "^2")
- ref))))
- (setq start-msg (format "merge %s into %s" ref start-msg))
- (magit-wip--update-ref wipref start-msg
- (magit-git-string "commit-tree" "--no-gpg-sign"
- "-p" wipref "-p" ref
- "-m" start-msg
- (concat ref "^{tree}")))
- (setq parent wipref)))
+ ((and (not (equal parent wipref))
+ (or (not magit-wip-merge-branch)
+ (not (magit-rev-verify wipref))))
+ (setq start-msg (concat "start autosaving " start-msg))
+ (magit-wip--update-ref wipref start-msg
+ (magit-git-string "commit-tree" "--no-gpg-sign"
+ "-p" parent "-m" start-msg
+ (concat parent "^{tree}")))
+ (setq parent wipref))
+ ((and magit-wip-merge-branch
+ (or (not (magit-rev-ancestor-p ref wipref))
+ (not (magit-rev-ancestor-p
+ (concat (magit-git-string "log" "--format=%H"
+ "-1" "--merges" wipref)
+ "^2")
+ ref))))
+ (setq start-msg (format "merge %s into %s" ref start-msg))
+ (magit-wip--update-ref wipref start-msg
+ (magit-git-string "commit-tree" "--no-gpg-sign"
+ "-p" wipref "-p" ref
+ "-m" start-msg
+ (concat ref "^{tree}")))
+ (setq parent wipref)))
(when (magit-git-failure "diff-tree" "--quiet" parent tree "--" files)
(unless (and msg (not (= (aref msg 0) ?\s)))
(let ((len (length files)))
diff --git a/lisp/magit-worktree.el b/lisp/magit-worktree.el
index 89fa0675849..e8058f866e4 100644
--- a/lisp/magit-worktree.el
+++ b/lisp/magit-worktree.el
@@ -256,16 +256,16 @@ If there is only one worktree, then insert nothing."
(lambda (config)
(pcase-let ((`(,_ ,commit ,branch ,bare) config))
(cons (cond
- (branch
- (propertize
- branch 'font-lock-face
- (if (equal branch (magit-get-current-branch))
- 'magit-branch-current
- 'magit-branch-local)))
- (commit
- (propertize (magit-rev-abbrev commit)
- 'font-lock-face 'magit-hash))
- (bare "(bare)"))
+ (branch
+ (propertize
+ branch 'font-lock-face
+ (if (equal branch (magit-get-current-branch))
+ 'magit-branch-current
+ 'magit-branch-local)))
+ (commit
+ (propertize (magit-rev-abbrev commit)
+ 'font-lock-face 'magit-hash))
+ (bare "(bare)"))
config)))
worktrees))
(align (1+ (apply #'max (mapcar (##string-width (car %))
cols)))))