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 (emerge-make-temp-file "A"))
	(emerge-file-B (emerge-make-temp-file "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)))