Function: vc-git-delete-revision

vc-git-delete-revision is a byte-compiled function defined in vc-git.el.gz.

Signature

(vc-git-delete-revision REV)

Documentation

Rebase current branch to remove REV.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/vc-git.el.gz
(defun vc-git-delete-revision (rev)
  "Rebase current branch to remove REV."
  (vc-git--assert-revision-on-branch rev (vc-git--current-branch))
  (with-temp-buffer
    (vc-git-command t 0 nil "log" "--merges" (format "%s~1.." rev))
    (unless (bobp)
      (error "There have been merges since %s; cannot delete revision"
             rev)))
  (unless (zerop (vc-git-command nil 1 nil "rebase"
                                 rev "--onto" (format "%s~1" rev)))
    ;; FIXME: Ideally we would leave some sort of conflict for the user
    ;; to resolve, instead of just giving up.  We would want C-x v v to
    ;; do 'git rebase --continue' like how it can currently be used to
    ;; conclude a merge after resolving conflicts.
    (vc-git-command nil 0 nil "rebase" "--abort")
    (error "Merge conflicts while trying to delete %s; aborting" rev)))