aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/diff3/diff3.1
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/diff3/diff3.1')
-rw-r--r--usr.bin/diff3/diff3.1221
1 files changed, 221 insertions, 0 deletions
diff --git a/usr.bin/diff3/diff3.1 b/usr.bin/diff3/diff3.1
new file mode 100644
index 000000000000..9286a79e6ec6
--- /dev/null
+++ b/usr.bin/diff3/diff3.1
@@ -0,0 +1,221 @@
+.\" $OpenBSD: diff3.1,v 1.7 2007/05/31 19:20:09 jmc Exp $
+.\"
+.\" Copyright (c) 1990, 1993, 1994
+.\" The Regents of the University of California. All rights reserved.
+.\"
+.\" Redistribution and use in source and binary forms, with or without
+.\" modification, are permitted provided that the following conditions
+.\" are met:
+.\" 1. Redistributions of source code must retain the above copyright
+.\" notice, this list of conditions and the following disclaimer.
+.\" 2. Redistributions in binary form must reproduce the above copyright
+.\" notice, this list of conditions and the following disclaimer in the
+.\" documentation and/or other materials provided with the distribution.
+.\" 3. Neither the name of the University nor the names of its contributors
+.\" may be used to endorse or promote products derived from this software
+.\" without specific prior written permission.
+.\"
+.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" SUCH DAMAGE.
+.\"
+.Dd June 23, 2022
+.Dt DIFF3 1
+.Os
+.Sh NAME
+.Nm diff3
+.Nd 3-way differential file comparison
+.Sh SYNOPSIS
+.Nm
+.Op Fl 3AaEeimTXx
+.Op Fl Fl diff-program Ar program
+.Op Fl Fl strip-trailing-cr
+.Op Fl L | Fl Fl label Ar label1
+.Op Fl L | Fl Fl label Ar label2
+.Op Fl L | Fl Fl label Ar label3
+.Ar file1 file2 file3
+.Nm
+.Op Fl Fl help
+.Op Fl Fl version
+.Sh DESCRIPTION
+The
+.Nm
+utility compares the contents of three different versions of a file,
+.Ar file1 ,
+.Ar file2
+and
+.Ar file3 ,
+writing the result to the standard output.
+The options describe different methods of merging and
+purging
+the separate versions into a new file.
+.Nm
+is used by
+.Xr rcs 1
+to merge specific versions or create
+new versions.
+.Pp
+The options are as follows:
+.Bl -tag -width "-E, -X"
+.It Fl 3 , Fl Fl easy-only
+Produces an output script suitable for
+.Xr ed 1
+with changes
+specific only to
+.Ar file3 .
+.It Fl A Fl Fl show-all
+Output all changes, bracketing conflicts.
+.It Fl a , Fl Fl text
+Treat all files as ASCII.
+.It Fl E , Fl Fl show-overlap
+.It Fl X
+Similar to
+.Fl e
+and
+.Fl x ,
+respectively, but treat overlapping changes (i.e., changes that would
+be noted with ==== in the normal listing) differently.
+The overlapping lines from both files will be inserted by the edit script,
+bracketed by "<<<<<<" and ">>>>>>" lines.
+.It Fl e , Fl Fl ed
+Produces output in a form suitable as an input script for the
+.Xr ed 1
+utility.
+The script may then be used to merge differences common between all
+three files and differences specific to
+.Ar file1
+and
+.Ar file3 .
+In other words, the
+.Fl e
+option ignores differences specific to
+.Ar file1
+and
+.Ar file2 ,
+and those specific to
+.Ar file2
+and
+.Ar file3 .
+It is useful for backing out changes specific to
+.Ar file2
+only.
+.It Fl Fl help
+Prints usage information and exits.
+.It Fl i
+Appends 'w' and 'q'
+.Xr ed 1
+commands.
+.It Fl L , Fl Fl label
+Defines labels to print instead of file names
+.Ar file1 ,
+.Ar file2
+and
+.Ar file3 .
+.It Fl m, Fl Fl merge
+Merge output instead of generating ed script.
+.It Fl T, Fl Fl initial-tab
+In the normal listing,
+use a tab instead of two spaces
+at the beginning of each line.
+In modes that produce an
+.Xr ed 1
+script, this option changes nothing.
+.It Fl x, Fl Fl overlap-only
+Produces an output script suitable for
+.Xr ed 1
+with changes
+specific only to all three versions.
+.It Fl Fl diff-program Ar program
+Use
+.Ar program
+instead of the default
+.Xr diff 1
+to compare files.
+.It Fl Fl strip-trailing-cr
+Strip trailing carriage return on input files.
+.It Fl Fl version
+Prints version information and exits.
+.El
+.Pp
+The
+.Fl E
+option is used by
+.Tn RCS
+.Xr merge 1
+to ensure that overlapping changes in the merged files are preserved
+and brought to someone's attention.
+.Pp
+For example, suppose lines 7-8 are changed in both
+.Ar file1
+and
+.Ar file2 .
+Applying the edit script generated by the command
+.Pp
+.Dl $ diff3 -E file1 file2 file3
+.Pp
+to
+.Ar file1
+results in the file:
+.Bd -literal -offset indent
+lines 1-6
+of file1
+<<<<<<< file1
+lines 7-8
+of file1
+=======
+lines 7-8
+of file3
+>>>>>>> file3
+rest of file1
+.Ed
+.Pp
+The default output of
+.Nm
+makes notation of the differences between all files, and those
+differences specific to each pair of files.
+The changes are described by the commands necessary for
+.Xr ed 1
+to create the desired target from the different versions.
+See
+.Xr diff 1
+for a description of the commands.
+.Bl -tag -width "====="
+.It Li \&====
+The lines beneath this notation are ranges of lines which are different
+between all files.
+.It \&==== Ns Va n
+The lines beneath this notation are ranges of lines which are exclusively
+different in file
+.Va n .
+.El
+.Sh SEE ALSO
+.Xr diff 1 ,
+.Xr ed 1 ,
+.Xr merge 1 ,
+.Xr rcs 1 ,
+.Xr sdiff 1
+.Sh HISTORY
+A
+.Nm
+command appeared in
+.At v7 .
+.Sh BUGS
+The
+.Fl e
+option cannot catch and change lines which have
+.Ql \&.
+as the first and only character on the line.
+The resulting script will fail on that line
+as
+.Ql \&.
+is an
+.Xr ed 1
+editing command.