Function: magit-rebase--todo
magit-rebase--todo is a natively compiled function defined in
magit-sequence.el.
Signature
(magit-rebase--todo)
Documentation
Return git-rebase-action instances for remaining rebase actions.
These are ordered the same way they'll be sorted in the status buffer (i.e., the reverse of how they will be applied).
Source Code
;; Defined in /nix/store/irvbdy0zra0dn8fpd008f32x5ix6qm5v-emacs-packages-deps/share/emacs/site-lisp/elpa/magit-20261005.508/magit-sequence.el
(defun magit-rebase--todo ()
"Return `git-rebase-action' instances for remaining rebase actions.
These are ordered the same way they'll be sorted in the status
buffer (i.e., the reverse of how they will be applied)."
(let ((comment-start (or (magit-get "core.commentChar") "#"))
(commits ())
(actions ()))
(with-temp-buffer
(insert-file-contents
(expand-file-name "rebase-merge/git-rebase-todo" (magit-gitdir)))
(while (not (eobp))
(when-let ((obj (git-rebase-current-line t)))
(push obj actions)
(when (memq (oref obj action-type) '(commit merge))
(push obj commits)))
(forward-line)))
(let ((abbrevs
(and commits
(magit-git-lines
"log" "--no-walk=unsorted" "--format=%h"
(mapcar (lambda (obj)
(if (eq (oref obj action-type) 'merge)
(let ((options (oref obj action-options)))
(and (string-match "-[cC] \\([^ ]+\\)" options)
(match-str 1 options)))
(oref obj target)))
commits)))))
(cl-assert (equal (length commits) (length abbrevs)))
(while-let ((obj (pop commits))
(val (pop abbrevs)))
(oset obj abbrev val)))
actions))