Function: ediff-revert-buffers-then-recompute-diffs
ediff-revert-buffers-then-recompute-diffs is an interactive and
byte-compiled function defined in ediff-util.el.gz.
Signature
(ediff-revert-buffers-then-recompute-diffs NOCONFIRM)
Documentation
Revert buffers A, B and C. Then rerun Ediff on file A and file B.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-util.el.gz
;; Not bound to any key---too dangerous. A user can do it if necessary.
(defun ediff-revert-buffers-then-recompute-diffs (noconfirm)
"Revert buffers A, B and C. Then rerun Ediff on file A and file B."
(interactive "P")
(ediff-barf-if-not-control-buffer)
(let ((bufA ediff-buffer-A)
(bufB ediff-buffer-B)
(bufC ediff-buffer-C)
(ctl-buf ediff-control-buffer)
(keep-variants ediff-keep-variants)
(ancestor-buf ediff-ancestor-buffer)
(ancestor-job ediff-merge-with-ancestor-job)
(merge ediff-merge-job)
(comparison ediff-3way-comparison-job))
(ediff-with-current-buffer bufA
(revert-buffer t noconfirm))
(ediff-with-current-buffer bufB
(revert-buffer t noconfirm))
;; this should only be executed in a 3way comparison, not in merge
(if comparison
(ediff-with-current-buffer bufC
(revert-buffer t noconfirm)))
(if merge
(progn
(set-buffer ctl-buf)
;; the argument says whether to reverse the meaning of
;; ediff-keep-variants, i.e., ediff-really-quit runs here with
;; variants kept.
(ediff-really-quit (not keep-variants))
(kill-buffer bufC)
(if ancestor-job
(ediff-merge-buffers-with-ancestor bufA bufB ancestor-buf)
(ediff-merge-buffers bufA bufB)))
(ediff-update-diffs))))