home *** CD-ROM | disk | FTP | other *** search
GNU Info File | 1997-09-17 | 31.9 KB | 656 lines |
- This is Info file ../info/ediff, produced by Makeinfo-1.63 from the
- input file ediff.texi.
-
- This file documents Ediff, a comprehensive visual interface to Unix
- diff and patch utilities.
-
- Permission is granted to make and distribute verbatim copies of this
- manual provided the copyright notice and this permission notice are
- preserved on all copies.
-
- File: ediff, Node: Patch and Diff Programs, Next: Merging and diff3, Prev: Refinement of Difference Regions, Up: Customization
-
- Patch and Diff Programs
- =======================
-
- This section describes variables that specify the programs to be
- used for applying patches and for computing the main difference regions
- (not the fine difference regions):
-
- `ediff-patch-program'
- `ediff-diff-program'
- `ediff-diff3-program'
- These variables specify the programs to use to produce differences
- and do patching.
-
- `ediff-patch-options'
- `ediff-diff-options'
- `ediff-diff3-options'
- These variables specify the options to pass to the above utilities.
-
- In `ediff-diff-options', it may be useful to specify options such
- as `-w' that ignore certain kinds of changes. However, Ediff does
- not let you use the option `-c', as it doesn't recognize this
- format yet.
-
- `ediff-custom-diff-program'
- `ediff-custom-diff-options'
- Because Ediff limits the options you may want to pass to the `diff'
- program, it partially makes up for this drawback by letting you
- save the output from `diff' in your preferred format, which is
- specified via the above two variables.
-
- The output generated by `ediff-custom-diff-program' (which doesn't
- even have to be a standard-style `diff'!) is not used by Ediff. It
- is provided exclusively so that you can refer to it later, send it
- over email, etc. For instance, after reviewing the differences,
- you may want to send context differences to a colleague. Since
- Ediff ignores the `-c' option in `ediff-diff-program', you would
- have to run `diff -c' separately just to produce the list of
- differences. Fortunately, `ediff-custom-diff-program' and
- `ediff-custom-diff-options' eliminate this nuisance by keeping a
- copy of a difference list in the desired format in a buffer that
- can be displayed via the command `D'.
-
- `ediff-patch-default-directory'
- Specifies the default directory to look for patches.
-
- *Warning:* Ediff does not support the output format of VMS `diff'.
- Instead, make sure to use some implementation of POSIX `diff', such as
- `gnudiff'.
-
- File: ediff, Node: Merging and diff3, Next: Support for Version Control, Prev: Patch and Diff Programs, Up: Customization
-
- Merging and diff3
- =================
-
- Ediff supports three-way comparison via the functions `ediff-files3'
- and `ediff-buffers3'. The interface is the same as for two-way
- comparison. In three-way comparison and merging, Ediff reports if any
- two difference regions are identical. For instance, if the current
- region in buffer A is the same as the region in buffer C, then the mode
- line of buffer A will display `[=diff(C)]' and the mode line of buffer
- C will display `[=diff(A)]'.
-
- Merging is done according to the following algorithm.
-
- If a difference region in one of the buffers, say B, differs from
- the ancestor file while the region in the other buffer, A, doesn't,
- then the merge buffer, C, gets B's region. Similarly when buffer A's
- region differs from the ancestor and B's doesn't, A's region is used.
-
- If both regions in buffers A and B differ from the ancestor file,
- Ediff chooses the region according to the value of the variable
- `ediff-default-variant'. If its value is `default-A' then A's region
- is chosen. If it is `default-B' then B's region is chosen. If it is
- `combined' then the region in buffer C will look like this:
-
- #ifdef NEW /* variant A */
- difference region from buffer A
- #else /* variant B */
- difference region from buffer B
- #endif /* NEW */
-
- The actual strings that separate the regions copied from buffer A
- and B are controlled by the variable `ediff-combination-pattern'. Its
- value should be a list of three strings. The first is inserted before
- the difference region of buffer A; the second string goes between the
- regions; the third goes after region B, as shown in the above example.
-
- In addition to the state of the difference, during merging Ediff
- displays the state of the merge for each region. If a difference came
- from buffer A by default (because both regions A and B were different
- from the ancestor and `ediff-default-variant' was set to `default-A')
- then `[=diff(A) default-A]' is displayed in the mode line. If the
- difference in buffer C came, say, from buffer B because the difference
- region in that buffer differs from the ancestor, but the region in
- buffer A does not (if merging with an ancestor) then `[=diff(B)
- prefer-B]' is displayed. The indicators default-A/B and prefer-A/B are
- inspired by Emerge and have the same meaning.
-
- Another indicator of the state of merge is `combined'. It appears
- with any difference region in buffer C that was obtained by combining
- the difference regions in buffers A and B as explained above.
-
- In addition to state of merge and difference indicator, while
- merging with an ancestor file or buffer, Ediff informs the user when
- the current difference region in the (normally invisible) ancestor
- buffer is empty via the *AncestorEmpty* indicator. This helps determine
- if the changes made to the original in variants A and B represent pure
- insertion or deletion of text: if the mode line shows *AncestorEmpty*
- and the corresponding region in buffers A or B is not empty, this means
- that new text was inserted. If this indicator is not present and the
- difference regions in buffers A or B are non-empty, this means that
- text was modified. Otherwise, the original text was deleted.
-
- Although the ancestor buffer is normally invisible, Ediff maintains
- difference regions there and advances the current difference region
- accordingly. All highlighting of difference regions is provided in the
- ancestor buffer, except for the fine differences. Therefore, if
- desired, the user can put the ancestor buffer in a separate frame and
- watch it there. However, on a TTY, only one frame can be visible at any
- given time, and Ediff doesn't support any single-frame window
- configuration where all buffers, including the ancestor buffer, would
- be visible. However, the ancestor buffer can be displayed by typing `/'
- to the control window. (Type `C-l' to hide it again.)
-
- Note that the state-of-difference indicators `=diff(A)' and
- `=diff(B)' above are not redundant, even in the presence of a
- state-of-merge indicator. In fact, the two serve different purposes.
-
- For instance, if the mode line displays `=diff(B) prefer(B)' and you
- copy a difference region from buffer A to buffer C then `=diff(B)' will
- change to `diff-A' and the mode line will display `=diff(A) prefer-B'.
- This indicates that the difference region in buffer C is identical to
- that in buffer A, but originally buffer C's region came from buffer B.
- This is useful to know because you can recover the original difference
- region in buffer C by typing `r'.
-
- Ediff never changes the state-of-merge indicator, except in response
- to the `!' command (see below), in which case the indicator is lost.
- On the other hand, the state-of-difference indicator is changed
- automatically by the copying/recovery commands, `a', `b', `r', `+'.
-
- The `!' command loses the information about origins of the regions
- in the merge buffer (default-A, prefer-B, or combined). This is because
- recomputing differences in this case means running `diff3' on buffers
- A, B, and the merge buffer, not on the ancestor buffer. (It makes no
- sense to recompute differences using the ancestor file, since in the
- merging mode Ediff assumes that you have not edited buffers A and B,
- but that you may have edited buffer C, and these changes are to be
- preserved.) Since some difference regions may disappear as a result of
- editing buffer C and others may arise, there is generally no simple way
- to tell where the various regions in the merge buffer came from.
-
- In three-way comparison, Ediff tries to disregard regions that
- consist entirely of white space. For instance, if, say, the current
- region in buffer A consists of the white space only (or if it is
- empty), Ediff will not take it into account for the purpose of
- computing fine differences. The result is that Ediff can provide a
- better visual information regarding the actual fine differences in the
- non-white regions in buffers B and C. Moreover, if the regions in
- buffers B and C differ in the white space only, then a message to this
- effect will be displayed.
-
- In the merge mode, the share of the split between window C (the
- window displaying the merge-buffer) and the windows displaying buffers
- A and B is controlled by the variable `ediff-merge-window-share'. Its
- default value is 0.5. To make the merge-buffer window smaller, reduce
- this amount.
-
- We don't recommend increasing the size of the merge-window to more
- than half the frame (i.e., to increase the value of
- `ediff-merge-window-share') to more than 0.5, since it would be hard to
- see the contents of buffers A and B.
-
- You can temporarily shrink the merge window to just one line by
- typing `s'. This change is temporary, until Ediff finds a reason to
- redraw the screen. Typing `s' again restores the original window size.
-
- With a positive prefix argument, the `s' command will make the merge
- window slightly taller. This change is persistent. With ``-'' or with
- a negative prefix argument, the command `s' makes the merge window
- slightly shorter. This change also persistent.
-
- Ediff lets you automatically ignore the regions where only one of the
- buffers A and B disagrees with the ancestor. To do this, set the
- variable `ediff-show-clashes-only' to non-`nil'.
-
- You can toggle this feature interactively by typing `$'.
-
- Note that this variable controls only how Ediff chooses the
- next/previous difference to show. You can still jump directly to any
- difference using the command `j' (with a prefix argument specifying the
- difference number).
-
- File: ediff, Node: Support for Version Control, Next: Customizing the Mode Line, Prev: Merging and diff3, Up: Customization
-
- Support for Version Control
- ===========================
-
- Ediff supports version control and lets you compare versions of files
- visited by Emacs buffers via the function `ediff-revision'. This
- feature is controlled by the following variables:
-
- `ediff-version-control-package'
- A symbol. The default is `vc'.
-
- If you are like most Emacs users, Ediff will use VC as the version
- control package. This is the standard Emacs interface to RCS, CVS,
- and SCCS.
-
- However, if your needs are better served by other interfaces, you
- will have to tell Ediff which version control package you are
- using, e.g.,
- (setq ediff-version-control-package 'rcs)
-
- Apart from the standard `vc.el', Ediff supports three other
- interfaces to version control: `rcs.el', `pcl-cvs.el', and
- `generic-sc.el'. The package `rcs.el' is written by Sebastian
- Kremer <sk@thp.Uni-Koeln.DE> and is available as
- `ftp.cs.buffalo.edu:pub/Emacs/rcs.tar.Z'
- `ftp.uni-koeln.de:/pub/gnu/emacs/rcs.tar.Z'
- The packages `pcl-cvs.el' and `generic-sc.el' are found in XEmacs
- distribution.
-
- Ediff's interface to the above packages allows the user to compare
- the versions of the current buffer or to merge them (with or without an
- ancestor-version). These operations can also be performed on directories
- containing files under version control.
-
- In case of `pcl-cvs.el', Ediff can also be invoked via the function
- `run-ediff-from-cvs-buffer'--see the documentation string for this
- function.
-
- File: ediff, Node: Customizing the Mode Line, Next: Miscellaneous, Prev: Support for Version Control, Up: Customization
-
- Customizing the Mode Line
- =========================
-
- When Ediff is running, the mode line of `Ediff Control Panel' buffer
- shows the current difference number and the total number of difference
- regions in the two files.
-
- The mode line of the buffers being compared displays the type of the
- buffer (`A:', `B:', or `C:') and (usually) the file name. Ediff tries
- to be intelligent in choosing the mode line buffer identification. In
- particular, it works well with the `uniquify.el' and `mode-line.el'
- packages (which improve on the default way in which Emacs displays
- buffer identification). If you don't like the way Ediff changes the
- mode line, you can use `ediff-prepare-buffer-hook' to modify the mode
- line.
-
- File: ediff, Node: Miscellaneous, Next: Notes on Heavy-duty Customization, Prev: Customizing the Mode Line, Up: Customization
-
- Miscellaneous
- =============
-
- Here are a few other variables for customizing Ediff:
-
- `ediff-split-window-function'
- Controls the way you want the window be split between file-A and
- file-B (and file-C, if applicable). It defaults to the vertical
- split (`split-window-vertically', but you can set it to
- `split-window-horizontally', if you so wish. Ediff also lets you
- switch from vertical to horizontal split and back interactively.
-
- Note that if Ediff detects that all the buffers it compares are
- displayed in separate frames, it assumes that the user wants them
- to be so displayed and stops splitting windows. Instead, it
- arranges for each buffer to be displayed in a separate frame. You
- can switch to the one-frame mode by hiding one of the buffers
- A/B/C.
-
- You can also swap the windows where buffers are displayed by typing
- `~'.
-
- `ediff-merge-split-window-function'
- Controls how windows are split between buffers A and B in the
- merge mode. This variable is like `ediff-split-window-function',
- but it defaults to `split-window-horizontally' instead of
- `split-window-vertically'.
-
- `ediff-make-wide-display-function'
- The value is a function to be called to widen the frame for
- displaying the Ediff buffers. See the on-line documentation for
- `ediff-make-wide-display-function' for details. It is also
- recommended to look into the source of the default function
- `ediff-make-wide-display'.
-
- You can toggle wide/regular display by typing `m'. In the wide
- display mode, buffers A, B (and C, when applicable) are displayed
- in a single frame that is as wide as the entire workstation
- screen. This is useful when files are compared side-by-side. By
- default, the display is widened without changing its height.
-
- `ediff-use-last-dir'
- Controls the way Ediff presents the default directory when it
- prompts the user for files to compare. If `nil', Ediff uses the
- default directory of the current buffer when it prompts the user
- for file names. Otherwise, it will use the directories it had
- previously used for files A, B, or C, respectively.
-
- `ediff-no-emacs-help-in-control-buffer'
- If `t', makes `C-h' behave like the DEL key, i.e., it will move
- you back to the previous difference rather than invoking help.
- This is useful when, in an xterm window or a text-only terminal,
- the Backspace key is bound to `C-h' and is positioned more
- conveniently than the DEL key.
-
- `ediff-toggle-read-only-function'
- This variable's value is a function that Ediff uses to toggle the
- read-only property in its buffers.
-
- The default function that Ediff uses simply toggles the read-only
- property, unless the file is under version control. For a
- checked-in file under version control, Ediff first tries to check
- the file out.
-
- `ediff-keep-variants'
- The default is `t', meaning that the buffers being compared or
- merged will be preserved when Ediff quits. Setting this to `nil'
- causes Ediff to offer the user a chance to delete these buffers
- (if they are not modified). Supplying a prefix argument to the
- quit command (`q') temporarily reverses the meaning of this
- variable. This is convenient when the user prefers one of the
- behaviors most of the time, but occasionally needs the other
- behavior.
-
- However, Ediff temporarily resets this variable to `t' if it is
- invoked via one of the "buffer" jobs, such as `ediff-buffers'.
- This is because it is all too easy to loose day's work otherwise.
- Besides, in a "buffer" job, the variant buffers have already been
- loaded prior to starting Ediff, so Ediff just preserves status quo
- here.
-
- Using `ediff-cleanup-hook', one can make Ediff delete the variants
- unconditionally (e.g., by making `ediff-janitor' into one of these
- hooks).
-
- `ediff-grab-mouse'
- Default is `t'. Normally, Ediff grabs mouse and puts it in its
- control frame. This is useful since the user can be sure that
- when he needs to type an Ediff command the focus will be in an
- appropriate Ediff's frame. However, some users prefer to move the
- mouse by themselves. The above variable, if set to `maybe', will
- prevent Ediff from grabbing the mouse in many situations, usually
- after commands that may take more time than usual. In other
- situation, Ediff will continue grabbing the mouse and putting it
- where it believes is appropriate. If the value is `nil', then
- mouse is entirely user's responsibility. Try different settings
- and see which one is for you.
-
- File: ediff, Node: Notes on Heavy-duty Customization, Prev: Miscellaneous, Up: Customization
-
- Notes on Heavy-duty Customization
- =================================
-
- Some users need to customize Ediff in rather sophisticated ways,
- which requires different defaults for different kinds of files (e.g.,
- SGML, etc.). Ediff supports this kind of customization in several
- ways. First, most customization variables are buffer-local. Those that
- aren't are usually accessible from within Ediff Control Panel, so one
- can make them local to the panel by calling make-local-variable from
- within `ediff-startup-hook'.
-
- Second, the function `ediff-setup' accepts an optional sixth
- argument which has the form `((VAR-NAME-1 . VAL-1) (VAR-NAME-2 . VAL-2)
- ...)'. The function `ediff-setup' sets the variables in the list to
- the respective values, locally in the Ediff control buffer. This is an
- easy way to throw in custom variables (which usually should be
- buffer-local) that can then be tested in various hooks.
-
- Make sure the variable `ediff-job-name' and `ediff-word-mode' are set
- properly in this case, as some things in Ediff depend on this.
-
- Finally, if you want custom-tailored help messages, you can set the
- variables `ediff-brief-help-message-function' and
- `ediff-long-help-message-function' to functions that return help
- strings.
-
- When customizing Ediff, some other variables are useful, although
- they are not user-definable. They are local to the Ediff control
- buffer, so this buffer must be current when you access these variables.
- The control buffer is accessible via the variable
- `ediff-control-buffer', which is also local to that buffer. It is
- usually used for checking if the current buffer is also the control
- buffer.
-
- Other variables of interest are:
- `ediff-buffer-A'
- The first of the data buffers being compared.
-
- `ediff-buffer-B'
- The second of the data buffers being compared.
-
- `ediff-buffer-C'
- In three-way comparisons, this is the third buffer being compared.
- In merging, this is the merge buffer. In two-way comparison, this
- variable is nil.
-
- `ediff-window-A'
- The window displaying buffer A. If buffer A is not visible, this
- variable is nil or it may be a dead window.
-
- `ediff-window-B'
- The window displaying buffer B.
-
- `ediff-window-C'
- The window displaying buffer C, if any.
-
- `ediff-control-frame'
- A dedicated frame displaying the control buffer, if it exists. It
- is non-nil only if Ediff uses the multiframe display, i.e., when
- the control buffer is in its own frame.
-
- File: ediff, Node: Credits, Next: Index, Prev: Customization, Up: Top
-
- Credits
- *******
-
- Ediff was written by Michael Kifer <kifer@cs.sunysb.edu>. It was
- inspired by emerge.el written by Dale R. Worley <drw@math.mit.edu>. An
- idea due to Boris Goldowsky <boris@cs.rochester.edu> made it possible
- to highlight fine differences in Ediff buffers. Alastair Burt
- <burt@dfki.uni-kl.de> ported Ediff to XEmacs, and Eric Freudenthal
- <freudent@jan.ultra.nyu.edu> made it work with VC.
-
- Many people provided help with bug reports, patches, and advice.
- Without them, Ediff would not be nearly as useful as it is today. Here
- is a full list of contributors (I hope I didn't miss anyone):
-
- Neal Becker (neal@ctd.comsat.com),
- Alastair Burt (burt@dfki.uni-kl.de), Paul Bibilo (peb@delcam.co.uk),
- Kevin Broadey (KevinB@bartley.demon.co.uk),
- Harald Boegeholz (hwb@machnix.mathematik.uni-stuttgart.de),
- Bradley A. Bosch (brad@lachman.com),
- Michael D. Carney (carney@ltx-tr.com),
- Jin S. Choi (jin@atype.com),
- Albert Dvornik (bert@mit.edu),
- Eric Eide (eeide@asylum.cs.utah.edu),
- Kevin Esler (esler@ch.hp.com), Robert Estes (estes@ece.ucdavis.edu),
- Xavier Fornari (xavier@europe.cma.fr),
- Eric Freudenthal (freudent@jan.ultra.nyu.edu),
- Job Ganzevoort (Job.Ganzevoort@cwi.nl),
- Boris Goldowsky (boris@cs.rochester.edu),
- Allan Gottlieb (gottlieb@allan.ultra.nyu.edu), Xiaoli Huang (hxl@epic.com),
- Larry Gouge (larry@itginc.com), Karl Heuer (kwzh@gnu.ai.mit.edu),
- (irvine@lks.csi.com), (jaffe@chipmunk.cita.utoronto.ca),
- David Karr (dkarr@nmo.gtegsc.com),
- Norbert Kiesel (norbert@i3.informatik.rwth-aachen.de),
- Leigh L Klotz (klotz@adoc.xerox.com), Fritz Knabe (Fritz.Knabe@ecrc.de),
- Heinz Knutzen (hk@informatik.uni-kiel.d400.de),
- Andrew Koenig (ark@research.att.com),
- Ken Laprade (laprade@dw3f.ess.harris.com), Will C Lauer (wcl@cadre.com),
- Richard Levitte (levitte@e.kth.se), Mike Long (mike.long@analog.com),
- Martin Maechler (maechler@stat.math.ethz.ch),
- Simon Marshall (Simon.Marshall@mail.esrin.esa.it),
- Richard Mlynarik (mly@adoc.xerox.com),
- Chris Murphy (murphycm@sun.aston.ac.uk),
- Erik Naggum (erik@naggum.no),
- Eyvind Ness (Eyvind.Ness@hrp.no), Ray Nickson (nickson@cs.uq.oz.au),
- David Petchey (petchey_david@jpmorgan.com),
- Benjamin Pierce (benjamin.pierce@cl.cam.ac.uk),
- Tibor Polgar (tlp00@spg.amdahl.com),
- David Prince (dave0d@fegs.co.uk),
- Paul Raines (raines@slac.stanford.edu),
- C.S. Roberson (roberson@aur.alcatel.com),
- Kevin Rodgers (kevin.rodgers@ihs.com),
- Sandy Rutherford (sandy@ibm550.sissa.it),
- Heribert Schuetz (schuetz@ecrc.de), Andy Scott (ascott@pcocd2.intel.com),
- Axel Seibert (axel@tumbolia.ppp.informatik.uni-muenchen.de),
- Richard Stallman (rms@gnu.ai.mit.edu),
- Richard Stanton (stanton@haas.berkeley.edu),
- Ake Stenhoff (etxaksf@aom.ericsson.se), Stig (stig@hackvan.com),
- Peter Stout (Peter_Stout@cs.cmu.edu), Chuck Thompson (cthomp@cs.uiuc.edu),
- Ray Tomlinson (tomlinso@bbn.com),
- Raymond Toy (toy@rtp.ericsson.se),
- Ben Wing (wing@666.com),
- Ilya Zakharevich (ilya@math.ohio-state.edu),
- Eli Zaretskii (eliz@is.elta.co.il)
-
- File: ediff, Node: Index, Prev: Credits, Up: Top
-
- Index
- *****
-
- * Menu:
-
- * ediff-grab-mouse: Miscellaneous.
- * ediff-keep-variants: Miscellaneous.
- * ediff-use-last-dir: Major Entry Points.
- * generic-sc.el: Support for Version Control.
- * mode-line.el: Customizing the Mode Line.
- * pcl-cvs.el: Support for Version Control.
- * rcs.el: Support for Version Control.
- * uniquify.el: Customizing the Mode Line.
- * vc.el: Support for Version Control.
- * Comparing files and buffers: Introduction.
- * ediff: Major Entry Points.
- * ediff-after-flag-eol: Highlighting Difference Regions.
- * ediff-after-flag-mol: Highlighting Difference Regions.
- * ediff-after-setup-control-frame-hook: Hooks.
- * ediff-after-setup-windows-hook: Hooks.
- * ediff-auto-refine: Refinement of Difference Regions.
- * ediff-auto-refine-limit: Refinement of Difference Regions.
- * ediff-before-flag-bol: Highlighting Difference Regions.
- * ediff-before-flag-mol: Highlighting Difference Regions.
- * ediff-before-setup-control-frame-hook: Hooks.
- * ediff-before-setup-windows-hook: Hooks.
- * ediff-brief-help-message-function: Notes on Heavy-duty Customization.
- * ediff-buffers: Major Entry Points.
- * ediff-buffers3: Major Entry Points.
- * ediff-cleanup-hook: Hooks.
- * ediff-combination-pattern: Merging and diff3.
- * ediff-control-buffer: Quick Help.
- * ediff-control-frame-parameters: Window and Frame Configuration.
- * ediff-control-frame-position-function: Window and Frame Configuration.
- * ediff-control-frame-upward-shift: Window and Frame Configuration.
- * ediff-current-diff-face-A: Highlighting Difference Regions.
- * ediff-current-diff-face-B: Highlighting Difference Regions.
- * ediff-current-diff-face-C: Highlighting Difference Regions.
- * ediff-custom-diff-options: Patch and Diff Programs.
- * ediff-custom-diff-program: Patch and Diff Programs.
- * ediff-default-variant: Merging and diff3.
- * ediff-diff-options: Patch and Diff Programs.
- * ediff-diff-program <1>: Patch and Diff Programs.
- * ediff-diff-program: Refinement of Difference Regions.
- * ediff-diff3-options: Patch and Diff Programs.
- * ediff-diff3-program: Patch and Diff Programs.
- * ediff-directories: Major Entry Points.
- * ediff-directories3: Major Entry Points.
- * ediff-directory-revisions: Major Entry Points.
- * ediff-display-help-hook: Hooks.
- * ediff-even-diff-face-A: Highlighting Difference Regions.
- * ediff-even-diff-face-B: Highlighting Difference Regions.
- * ediff-even-diff-face-C: Highlighting Difference Regions.
- * ediff-files: Major Entry Points.
- * ediff-files3: Major Entry Points.
- * ediff-fine-diff-face-A: Highlighting Difference Regions.
- * ediff-fine-diff-face-B: Highlighting Difference Regions.
- * ediff-fine-diff-face-C: Highlighting Difference Regions.
- * ediff-force-faces: Highlighting Difference Regions.
- * ediff-forward-word: Refinement of Difference Regions.
- * ediff-forward-word-function: Refinement of Difference Regions.
- * ediff-help-message: Quick Help.
- * ediff-highlight-all-diffs: Highlighting Difference Regions.
- * ediff-ignore-similar-regions: Selective Browsing.
- * ediff-janitor: Hooks.
- * ediff-job-name: Notes on Heavy-duty Customization.
- * ediff-keymap-setup-hook: Hooks.
- * ediff-load-hook: Hooks.
- * ediff-long-help-message-function: Notes on Heavy-duty Customization.
- * ediff-make-frame-position: Window and Frame Configuration.
- * ediff-make-wide-display-function: Miscellaneous.
- * ediff-merge: Major Entry Points.
- * ediff-merge-buffers: Major Entry Points.
- * ediff-merge-buffers-with-ancestor: Major Entry Points.
- * ediff-merge-directories: Major Entry Points.
- * ediff-merge-directories-with-ancestor: Major Entry Points.
- * ediff-merge-directory-revisions: Major Entry Points.
- * ediff-merge-directory-revisions-with-ancestor: Major Entry Points.
- * ediff-merge-files: Major Entry Points.
- * ediff-merge-files-with-ancestor: Major Entry Points.
- * ediff-merge-revisions: Major Entry Points.
- * ediff-merge-revisions-with-ancestor: Major Entry Points.
- * ediff-merge-split-window-function: Miscellaneous.
- * ediff-merge-window-share: Merging and diff3.
- * ediff-merge-with-ancestor: Major Entry Points.
- * ediff-mode-hook: Hooks.
- * ediff-narrow-control-frame-leftward-shift: Window and Frame Configuration.
- * ediff-no-emacs-help-in-control-buffer: Miscellaneous.
- * ediff-odd-diff-face-A: Highlighting Difference Regions.
- * ediff-odd-diff-face-B: Highlighting Difference Regions.
- * ediff-odd-diff-face-C: Highlighting Difference Regions.
- * ediff-patch-buffer: Major Entry Points.
- * ediff-patch-default-directory: Patch and Diff Programs.
- * ediff-patch-file: Major Entry Points.
- * ediff-patch-options: Patch and Diff Programs.
- * ediff-patch-program: Patch and Diff Programs.
- * ediff-prefer-iconified-control-frame: Window and Frame Configuration.
- * ediff-prepare-buffer-hook <1>: Customizing the Mode Line.
- * ediff-prepare-buffer-hook: Hooks.
- * ediff-profile: Commands.
- * ediff-quit-hook: Hooks.
- * ediff-quit-widened: Narrowing.
- * ediff-regions-linewise: Major Entry Points.
- * ediff-regions-wordwise: Major Entry Points.
- * ediff-registry-setup-hook: Hooks.
- * ediff-revert-buffers-then-recompute-diffs: Commands.
- * ediff-revision: Major Entry Points.
- * ediff-save-buffer: Patch and Diff Programs.
- * ediff-select-hook: Hooks.
- * ediff-session-group-setup-hook: Hooks.
- * ediff-setup: Notes on Heavy-duty Customization.
- * ediff-setup-windows: Window and Frame Configuration.
- * ediff-setup-windows-multiframe: Window and Frame Configuration.
- * ediff-setup-windows-plain: Window and Frame Configuration.
- * ediff-show-clashes-only: Merging and diff3.
- * ediff-show-registry: Commands.
- * ediff-split-window-function: Miscellaneous.
- * ediff-start-narrowed: Narrowing.
- * ediff-startup-hook <1>: Notes on Heavy-duty Customization.
- * ediff-startup-hook <1>: Quick Help.
- * ediff-startup-hook: Hooks.
- * ediff-suspend-hook: Hooks.
- * ediff-toggle-multiframe <1>: Window and Frame Configuration.
- * ediff-toggle-multiframe: Commands.
- * ediff-toggle-read-only-function: Miscellaneous.
- * ediff-unselect-hook: Hooks.
- * ediff-use-last-dir: Miscellaneous.
- * ediff-use-long-help-message: Quick Help.
- * ediff-version-control-package: Support for Version Control.
- * ediff-wide-control-frame-rightward-shift: Window and Frame Configuration.
- * ediff-window-setup-function: Window and Frame Configuration.
- * ediff-windows-linewise: Major Entry Points.
- * ediff-windows-wordwise: Major Entry Points.
- * ediff-word-1: Refinement of Difference Regions.
- * ediff-word-2: Refinement of Difference Regions.
- * ediff-word-3: Refinement of Difference Regions.
- * ediff-word-4: Refinement of Difference Regions.
- * ediff-word-mode: Notes on Heavy-duty Customization.
- * ediff3: Major Entry Points.
- * edir-merge-revisions: Major Entry Points.
- * edir-merge-revisions-with-ancestor: Major Entry Points.
- * edir-revisions: Major Entry Points.
- * edirs: Major Entry Points.
- * edirs-merge: Major Entry Points.
- * edirs-merge-with-ancestor: Major Entry Points.
- * edirs3: Major Entry Points.
- * epatch: Major Entry Points.
- * eregistry: Commands.
- * Finding differences: Introduction.
- * Merging files and buffers: Introduction.
- * Multi-file patches: Session Groups.
- * Patching files and buffers: Introduction.
-
-
-