Function: emerge-revision-with-ancestor-internal

emerge-revision-with-ancestor-internal is a byte-compiled function defined in emerge.el.gz.

Signature

(emerge-revision-with-ancestor-internal FILE REVISION-A REVISION-B ANCESTOR &optional STARTUP-HOOKS QUIT-HOOKS OUTPUT-FILE)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/emerge.el.gz
(defun emerge-revision-with-ancestor-internal (file revision-A revision-B
                                               ancestor
                                               &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)))
	(buffer-ancestor (get-buffer-create (format "%s,%s" file ancestor)))
        (emerge-file-A (make-temp-file "emerge-A"))
        (emerge-file-B (make-temp-file "emerge-B"))
        (emerge-ancestor (make-temp-file "emerge-ancestor")))
    ;; 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))
    (with-current-buffer
     buffer-ancestor
     (erase-buffer)
     (shell-command
      (format "%s -q -p%s %s" emerge-rcs-co-program ancestor file)
      t)
     (write-region (point-min) (point-max) emerge-ancestor nil 'no-message)
     (set-buffer-modified-p nil))
    ;; Do the merge
    (emerge-setup-with-ancestor
     buffer-A emerge-file-A buffer-B emerge-file-B
     buffer-ancestor emerge-ancestor
     (cons (lambda ()
             (delete-file emerge-file-A)
             (delete-file emerge-file-B)
             (delete-file emerge-ancestor))
	   startup-hooks)
     (cons (lambda () (emerge-files-exit file))
	   quit-hooks)
     output-file)))