Comparing and Merging Files - 8. Interactive Merging with sdiff
8. Interactive Merging with sdiff
With sdiff, you can merge two files interactively based on a
side-by-side `-y' format comparison (see section 2.4 Showing Differences Side by Side). Use
`-o file' or `--output=file' to specify where to
put the merged text. See section 15. Invoking sdiff, for more details on the
options to sdiff.
Another way to merge files interactively is to use the Emacs Lisp
package emerge. See section `emerge' in The GNU Emacs Manual, for more information.
8.1 Specifying diff Options to sdiff
The following sdiff options have the same meaning as for
diff. See section 12.1 Options to diff, for the use of these options.
-a -b -d -i -t -v -B -H -I regexp --ignore-blank-lines --ignore-case --ignore-matching-lines=regexp --ignore-space-change --left-column --minimal --speed-large-files --suppress-common-lines --expand-tabs --text --version --width=columns
For historical reasons, sdiff has alternate names for some
options. The `-l' option is equivalent to the `--left-column'
option, and similarly `-s' is equivalent to
`--suppress-common-lines'. The meaning of the sdiff
`-w' and `-W' options is interchanged from that of
diff: with sdiff, `-w columns' is equivalent to
`--width=columns', and `-W' is equivalent to
`--ignore-all-space'. sdiff without the `-o' option is
equivalent to diff with the `-y' or `--side-by-side'
option (see section 2.4 Showing Differences Side by Side).
8.2 Merge Commands
Groups of common lines, with a blank gutter, are copied from the first
file to the output. After each group of differing lines, sdiff
prompts with `%' and pauses, waiting for one of the following
commands. Follow each command with RET.
- `e'
- Discard both versions. Invoke a text editor on an empty temporary file, then copy the resulting file to the output.
- `eb'
- Concatenate the two versions, edit the result in a temporary file, then copy the edited result to the output.
- `el'
- Edit a copy of the left version, then copy the result to the output.
- `er'
- Edit a copy of the right version, then copy the result to the output.
- `l'
- Copy the left version to the output.
- `q'
- Quit.
- `r'
- Copy the right version to the output.
- `s'
- Silently copy common lines.
- `v'
- Verbosely copy common lines. This is the default.
The text editor invoked is specified by the EDITOR environment
variable if it is set. The default is system-dependent.
Go to the first, previous, next, last section, table of contents.