Function: ediff-vc-merge-internal
ediff-vc-merge-internal is a byte-compiled function defined in
ediff-vers.el.gz.
Signature
(ediff-vc-merge-internal REV1 REV2 ANCESTOR-REV &optional STARTUP-HOOKS MERGE-BUFFER-FILE)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff-vers.el.gz
;;; Merge with Version Control
(defun ediff-vc-merge-internal (rev1 rev2 ancestor-rev
&optional startup-hooks merge-buffer-file)
;; If ANCESTOR-REV non-nil, merge with ancestor
(let (buf1 buf2 ancestor-buf)
(save-window-excursion
(save-excursion
(vc-revision-other-window rev1)
(setq buf1 (current-buffer)))
(save-excursion
(or (string= rev2 "")
(vc-revision-other-window rev2))
(setq buf2 (current-buffer)))
(if ancestor-rev
(save-excursion
(if (string= ancestor-rev "")
(setq ancestor-rev (vc-working-revision
buffer-file-name)))
(vc-revision-other-window ancestor-rev)
(setq ancestor-buf (current-buffer))))
(push (let ((f1 (buffer-file-name buf1))
(f2 (unless (string= rev2 "") (buffer-file-name buf2)))
(fa (unless (or (string= ancestor-rev "")
(not ancestor-rev))
(buffer-file-name ancestor-buf))))
(lambda ()
(ediff-delete-version-file f1)
(if f2 (ediff-delete-version-file f2))
(if fa (ediff-delete-version-file fa))))
startup-hooks))
(if ancestor-rev
(ediff-merge-buffers-with-ancestor
buf1 buf2 ancestor-buf
startup-hooks 'ediff-merge-revisions-with-ancestor merge-buffer-file)
(ediff-merge-buffers
buf1 buf2 startup-hooks 'ediff-merge-revisions merge-buffer-file))
))