Function: magit--cherry-pick

magit--cherry-pick is a byte-compiled function defined in magit-sequence.el.

Signature

(magit--cherry-pick COMMITS ARGS &optional REVERT)

Source Code

;; Defined in ~/.emacs.d/elpa/magit-20260411.1452/magit-sequence.el
(defun magit--cherry-pick (commits args &optional revert)
  (let ((command (if revert "revert" "cherry-pick")))
    (when (stringp commits)
      (setq commits (if (string-search ".." commits)
                        (split-string commits "\\.\\.")
                      (list commits))))
    (magit-run-git-sequencer
     (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))))
     commits)))