33.3.1 Overview of Emerge
To start Emerge, run one of these four commands:
- M-x emerge-files
- Merge two specified files.
- M-x emerge-files-with-ancestor
- Merge two specified files, with reference to a common ancestor.
- M-x emerge-buffers
- Merge two buffers.
- M-x emerge-buffers-with-ancestor
- Merge two buffers with reference to a common ancestor in a third
The Emerge commands compare two files or buffers, and display the
comparison in three buffers: one for each input text (the A buffer
and the B buffer), and one (the merge buffer) where merging
takes place. The merge buffer shows the full merged text, not just the
differences. Wherever the two input texts differ, you can choose which
one of them to include in the merge buffer.
The Emerge commands that take input from existing buffers use only the
accessible portions of those buffers, if they are narrowed
If a common ancestor version is available, from which the two texts to
be merged were both derived, Emerge can use it to guess which
alternative is right. Wherever one current version agrees with the
ancestor, Emerge presumes that the other current version is a deliberate
change which should be kept in the merged version. Use the
‘with-ancestor’ commands if you want to specify a common ancestor
text. These commands read three file or buffer names—variant A,
variant B, and the common ancestor.
After the comparison is done and the buffers are prepared, the
interactive merging starts. You control the merging by typing special
merge commands in the merge buffer (see Merge Commands).
For each run of differences between the input texts, you can choose
which one of them to keep, or edit them both together.
The merge buffer uses a special major mode, Emerge mode, with commands
for making these choices. But you can also edit the buffer with
ordinary Emacs commands.
At any given time, the attention of Emerge is focused on one
particular difference, called the selected difference. This
difference is marked off in the three buffers like this:
text that differs
Emerge numbers all the differences sequentially and the mode
line always shows the number of the selected difference.
Normally, the merge buffer starts out with the A version of the text.
But when the A version of a difference agrees with the common ancestor,
then the B version is initially preferred for that difference.
Emerge leaves the merged text in the merge buffer when you exit. At
that point, you can save it in a file with C-x C-w. If you give a
numeric argument to
emerge-files-with-ancestor, it reads the name of the output file
using the minibuffer. (This is the last file name those commands read.)
Then exiting from Emerge saves the merged text in the output file.
Normally, Emerge commands save the output buffer in its file when you
exit. If you abort Emerge with C-], the Emerge command does not
save the output buffer, but you can save it yourself if you wish.