Function: emerge-revisions-internal
emerge-revisions-internal is a byte-compiled function defined in
emerge.el.gz.
Signature
(emerge-revisions-internal FILE REVISION-A REVISION-B &optional STARTUP-HOOKS QUIT-HOOKS OUTPUT-FILE)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/emerge.el.gz
(defun emerge-revisions-internal (file revision-A revision-B &optional
startup-hooks quit-hooks _output-file)
(let ((buffer-A (get-buffer-create (format "%s,%s" file revision-A)))
(buffer-B (get-buffer-create (format "%s,%s" file revision-B)))
(emerge-file-A (make-temp-file "emerge-A"))
(emerge-file-B (make-temp-file "emerge-B")))
;; Get the revisions into buffers
(with-current-buffer
buffer-A
(erase-buffer)
(shell-command
(format "%s -q -p%s %s" emerge-rcs-co-program revision-A file)
t)
(write-region (point-min) (point-max) emerge-file-A nil 'no-message)
(set-buffer-modified-p nil))
(with-current-buffer
buffer-B
(erase-buffer)
(shell-command
(format "%s -q -p%s %s" emerge-rcs-co-program revision-B file)
t)
(write-region (point-min) (point-max) emerge-file-B nil 'no-message)
(set-buffer-modified-p nil))
;; Do the merge
(emerge-setup buffer-A emerge-file-A
buffer-B emerge-file-B
(cons (lambda ()
(delete-file emerge-file-A)
(delete-file emerge-file-B))
startup-hooks)
(cons (lambda () (emerge-files-exit file))
quit-hooks)
nil)))