File: ediff.el.html

Never read that diff output again! Apply patch interactively! Merge with ease!

This package provides a convenient way of simultaneous browsing through the differences between a pair (or a triple) of files or buffers. The files being compared, file-A, file-B, and file-C (if applicable) are shown in separate windows (side by side, one above the another, or in separate frames), and the differences are highlighted as you step through them. You can also copy difference regions from one buffer to another (and recover old differences if you change your mind).

Ediff also supports merging operations on files and buffers, including merging using ancestor versions. Both comparison and merging operations can be performed on directories, i.e., by pairwise comparison of files in those directories.

In addition, Ediff can apply a patch to a file and then let you step though both files, the patched and the original one, simultaneously, difference-by-difference. You can even apply a patch right out of a mail buffer, i.e., patches received by mail don't even have to be saved. Since Ediff lets you copy differences between buffers, you can, in effect, apply patches selectively (i.e., you can copy a difference region from file_orig to file, thereby undoing any particular patch that you don't like).

Ediff is aware of version control, which lets the user compare files with their older versions. Ediff can also work with remote and compressed files. Details are given below.

Finally, Ediff supports directory-level comparison, merging and patching. See the Ediff manual for details.

This package builds upon the ideas borrowed from emerge.el and several Ediff's functions are adaptations from emerge.el. Much of the functionality Ediff provides is also influenced by emerge.el.

The present version of Ediff supersedes Emerge. It provides a superior user interface and has numerous major features not found in Emerge. In particular, it can do patching, and 2-way and 3-way file comparison, merging, and directory operations.

Defined variables (3)

ediff--magic-file-nameName of file where buffer’s content was saved.
ediff-use-last-dirIf t, Ediff will use previous directory as default when reading file name.
ediff-versionThe current version of Ediff.

Defined functions (62)

ebuffers(BUFFER-A BUFFER-B &optional STARTUP-HOOKS JOB-NAME)
ebuffers3(BUFFER-A BUFFER-B BUFFER-C &optional STARTUP-HOOKS JOB-NAME)
ediff(FILE-A FILE-B &optional STARTUP-HOOKS)
ediff--buffer-file-name(BUF)
ediff-backup(FILE)
ediff-buffers(BUFFER-A BUFFER-B &optional STARTUP-HOOKS JOB-NAME)
ediff-buffers-internal(BUF-A BUF-B BUF-C STARTUP-HOOKS JOB-NAME &optional MERGE-BUFFER-FILE)
ediff-buffers3(BUFFER-A BUFFER-B BUFFER-C &optional STARTUP-HOOKS JOB-NAME)
ediff-current-file()
ediff-directories(DIR1 DIR2 REGEXP)
ediff-directories-command()
ediff-directories-internal(DIR1 DIR2 DIR3 REGEXP ACTION JOBNAME &optional STARTUP-HOOKS MERGE-AUTOSTORE-DIR)
ediff-directories3(DIR1 DIR2 DIR3 REGEXP)
ediff-directories3-command()
ediff-directory-revisions(DIR1 REGEXP)
ediff-directory-revisions-internal(DIR1 REGEXP ACTION JOBNAME &optional STARTUP-HOOKS MERGE-AUTOSTORE-DIR)
ediff-documentation(&optional NODE)
ediff-files(FILE-A FILE-B &optional STARTUP-HOOKS)
ediff-files-command()
ediff-files-internal(FILE-A FILE-B FILE-C STARTUP-HOOKS JOB-NAME &optional MERGE-BUFFER-FILE)
ediff-files3(FILE-A FILE-B FILE-C &optional STARTUP-HOOKS)
ediff-find-file(FILE &optional LAST-DIR)
ediff-get-default-file-name(&optional DEFAULT FILENO)
ediff-load-version-control(&optional SILENT)
ediff-merge(FILE-A FILE-B &optional STARTUP-HOOKS MERGE-BUFFER-FILE)
ediff-merge-buffers(BUFFER-A BUFFER-B &optional STARTUP-HOOKS JOB-NAME MERGE-BUFFER-FILE)
ediff-merge-buffers-with-ancestor(BUFFER-A BUFFER-B BUFFER-ANCESTOR &optional STARTUP-HOOKS JOB-NAME MERGE-BUFFER-FILE)
ediff-merge-command()
ediff-merge-directories(DIR1 DIR2 REGEXP &optional MERGE-AUTOSTORE-DIR)
ediff-merge-directories-command()
ediff-merge-directories-with-ancestor(DIR1 DIR2 ANCESTOR-DIR REGEXP &optional MERGE-AUTOSTORE-DIR)
ediff-merge-directories-with-ancestor-command()
ediff-merge-directory-revisions(DIR1 REGEXP &optional MERGE-AUTOSTORE-DIR)
ediff-merge-directory-revisions-with-ancestor(DIR1 REGEXP &optional MERGE-AUTOSTORE-DIR)
ediff-merge-files(FILE-A FILE-B &optional STARTUP-HOOKS MERGE-BUFFER-FILE)
ediff-merge-files-with-ancestor(FILE-A FILE-B FILE-ANCESTOR &optional STARTUP-HOOKS MERGE-BUFFER-FILE)
ediff-merge-revisions(&optional FILE STARTUP-HOOKS MERGE-BUFFER-FILE)
ediff-merge-revisions-with-ancestor(&optional FILE STARTUP-HOOKS MERGE-BUFFER-FILE)
ediff-merge-with-ancestor(FILE-A FILE-B FILE-ANCESTOR &optional STARTUP-HOOKS MERGE-BUFFER-FILE)
ediff-merge-with-ancestor-command()
ediff-patch-buffer(&optional ARG PATCH-BUF)
ediff-patch-file(&optional ARG PATCH-BUF)
ediff-regions-internal(BUFFER-A BEG-A END-A BUFFER-B BEG-B END-B STARTUP-HOOKS JOB-NAME WORD-MODE SETUP-PARAMETERS)
ediff-regions-linewise(BUFFER-A BUFFER-B &optional STARTUP-HOOKS)
ediff-regions-wordwise(BUFFER-A BUFFER-B &optional STARTUP-HOOKS)
ediff-revision(&optional FILE STARTUP-HOOKS)
ediff-version()
ediff-windows(DUMB-MODE WIND-A WIND-B STARTUP-HOOKS JOB-NAME WORD-MODE)
ediff-windows-linewise(DUMB-MODE &optional WIND-A WIND-B STARTUP-HOOKS)
ediff-windows-wordwise(DUMB-MODE &optional WIND-A WIND-B STARTUP-HOOKS)
ediff3(FILE-A FILE-B FILE-C &optional STARTUP-HOOKS)
ediff3-files-command()
edir-merge-revisions(DIR1 REGEXP &optional MERGE-AUTOSTORE-DIR)
edir-merge-revisions-with-ancestor(DIR1 REGEXP &optional MERGE-AUTOSTORE-DIR)
edir-revisions(DIR1 REGEXP)
edirs(DIR1 DIR2 REGEXP)
edirs-merge(DIR1 DIR2 REGEXP &optional MERGE-AUTOSTORE-DIR)
edirs-merge-with-ancestor(DIR1 DIR2 ANCESTOR-DIR REGEXP &optional MERGE-AUTOSTORE-DIR)
edirs3(DIR1 DIR2 DIR3 REGEXP)
epatch(&optional ARG PATCH-BUF)
epatch-buffer(&optional ARG PATCH-BUF)
erevision(&optional FILE STARTUP-HOOKS)

Defined faces (0)