Function: ediff-directory-revisions-internal
ediff-directory-revisions-internal is a byte-compiled function defined
in ediff.el.gz.
Signature
(ediff-directory-revisions-internal DIR1 REGEXP ACTION JOBNAME &optional STARTUP-HOOKS MERGE-AUTOSTORE-DIR)
Source Code
;; Defined in /usr/src/emacs/lisp/vc/ediff.el.gz
;; MERGE-AUTOSTORE-DIR can be given to tell ediff where to store the merged
;; files
(defun ediff-directory-revisions-internal (dir1 regexp action jobname
&optional startup-hooks
merge-autostore-dir)
(setq dir1 (if (file-directory-p dir1) dir1 (file-name-directory dir1)))
(if merge-autostore-dir
(or (stringp merge-autostore-dir)
(error "%S: Directory for storing merged files must be a string"
jobname)))
(let (file-list meta-buf)
(if (and ediff-autostore-merges
(ediff-merge-metajob jobname)
(not merge-autostore-dir))
(setq merge-autostore-dir
(read-directory-name "Save merged files in directory: "
(if ediff-use-last-dir
ediff-last-merge-autostore-dir
(ediff-strip-last-dir dir1))
nil
'must-match)))
;; verify merge-autostore-dir != dir1
(if (and merge-autostore-dir
(stringp dir1)
(string= merge-autostore-dir dir1))
(or (y-or-n-p
"Directory for saving merged file = directory A. Sure? ")
(user-error "Merge of directory revisions aborted")))
(setq file-list
(ediff-get-directory-files-under-revision
jobname regexp dir1 merge-autostore-dir))
;; this sets various vars in the meta buffer inside
;; ediff-prepare-meta-buffer
(push (lambda ()
;; tell what to do if the user clicks on a session record
(setq ediff-session-action-function action))
startup-hooks)
(setq meta-buf (ediff-prepare-meta-buffer
#'ediff-filegroup-action
file-list
"*Ediff Session Group Panel"
#'ediff-redraw-directory-group-buffer
jobname
startup-hooks))
(ediff-show-meta-buffer meta-buf)
))