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))))