xref: /freebsd-12.1/usr.bin/diff3/diff3.1 (revision 9500abb0)
1e1910ebdSBaptiste Daroussin.\" $OpenBSD: diff3.1,v 1.7 2007/05/31 19:20:09 jmc Exp $
2e1910ebdSBaptiste Daroussin.\"
3e1910ebdSBaptiste Daroussin.\" Copyright (c) 1990, 1993, 1994
4e1910ebdSBaptiste Daroussin.\"	The Regents of the University of California.  All rights reserved.
5e1910ebdSBaptiste Daroussin.\"
6e1910ebdSBaptiste Daroussin.\" Redistribution and use in source and binary forms, with or without
7e1910ebdSBaptiste Daroussin.\" modification, are permitted provided that the following conditions
8e1910ebdSBaptiste Daroussin.\" are met:
9e1910ebdSBaptiste Daroussin.\" 1. Redistributions of source code must retain the above copyright
10e1910ebdSBaptiste Daroussin.\"    notice, this list of conditions and the following disclaimer.
11e1910ebdSBaptiste Daroussin.\" 2. Redistributions in binary form must reproduce the above copyright
12e1910ebdSBaptiste Daroussin.\"    notice, this list of conditions and the following disclaimer in the
13e1910ebdSBaptiste Daroussin.\"    documentation and/or other materials provided with the distribution.
14e1910ebdSBaptiste Daroussin.\" 3. Neither the name of the University nor the names of its contributors
15e1910ebdSBaptiste Daroussin.\"    may be used to endorse or promote products derived from this software
16e1910ebdSBaptiste Daroussin.\"    without specific prior written permission.
17e1910ebdSBaptiste Daroussin.\"
18e1910ebdSBaptiste Daroussin.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
19e1910ebdSBaptiste Daroussin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20e1910ebdSBaptiste Daroussin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21e1910ebdSBaptiste Daroussin.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
22e1910ebdSBaptiste Daroussin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23e1910ebdSBaptiste Daroussin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24e1910ebdSBaptiste Daroussin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25e1910ebdSBaptiste Daroussin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26e1910ebdSBaptiste Daroussin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27e1910ebdSBaptiste Daroussin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28e1910ebdSBaptiste Daroussin.\" SUCH DAMAGE.
29e1910ebdSBaptiste Daroussin.\"
30e1910ebdSBaptiste Daroussin.\"     @(#)diff3.1	8.2 (Berkeley) 4/18/94
31e1910ebdSBaptiste Daroussin.\" $FreeBSD$
32e1910ebdSBaptiste Daroussin.\"
33*9500abb0SBaptiste Daroussin.Dd May 25, 2017
34e1910ebdSBaptiste Daroussin.Dt DIFF3 1
35e1910ebdSBaptiste Daroussin.Os
36e1910ebdSBaptiste Daroussin.Sh NAME
37e1910ebdSBaptiste Daroussin.Nm diff3
38e1910ebdSBaptiste Daroussin.Nd 3-way differential file comparison
39e1910ebdSBaptiste Daroussin.Sh SYNOPSIS
40e1910ebdSBaptiste Daroussin.Nm diff3
41e1910ebdSBaptiste Daroussin.Op Fl 3aEeXx
42e1910ebdSBaptiste Daroussin.Ar file1 file2 file3
43e1910ebdSBaptiste Daroussin.Sh DESCRIPTION
44e1910ebdSBaptiste DaroussinThe
45e1910ebdSBaptiste Daroussin.Nm
46e1910ebdSBaptiste Daroussinutility compares the contents of three different versions of a file,
47e1910ebdSBaptiste Daroussin.Ar file1 ,
48e1910ebdSBaptiste Daroussin.Ar file2
49e1910ebdSBaptiste Daroussinand
50e1910ebdSBaptiste Daroussin.Ar file3 ,
51e1910ebdSBaptiste Daroussinwriting the result to the standard output.
52e1910ebdSBaptiste DaroussinThe options describe different methods of merging and
53e1910ebdSBaptiste Daroussinpurging
54e1910ebdSBaptiste Daroussinthe separate versions into a new file.
55e1910ebdSBaptiste Daroussin.Nm
56e1910ebdSBaptiste Daroussinis used by
57e1910ebdSBaptiste Daroussin.Xr rcs 1
58e1910ebdSBaptiste Daroussinto merge specific versions or create
59e1910ebdSBaptiste Daroussinnew versions.
60e1910ebdSBaptiste Daroussin.Pp
61e1910ebdSBaptiste DaroussinThe options are as follows:
62e1910ebdSBaptiste Daroussin.Bl -tag -width "-E, -X"
63e1910ebdSBaptiste Daroussin.It Fl 3
64e1910ebdSBaptiste DaroussinProduces an output script suitable for
65e1910ebdSBaptiste Daroussin.Xr ed 1
66e1910ebdSBaptiste Daroussinwith changes
67e1910ebdSBaptiste Daroussinspecific only to
68e1910ebdSBaptiste Daroussin.Ar file3 .
69e1910ebdSBaptiste Daroussin.It Fl a
70e1910ebdSBaptiste DaroussinTreat all files as ASCII.
71e1910ebdSBaptiste Daroussin.It Fl E , X
72e1910ebdSBaptiste DaroussinSimilar to
73e1910ebdSBaptiste Daroussin.Fl e
74e1910ebdSBaptiste Daroussinand
75e1910ebdSBaptiste Daroussin.Fl x ,
76e1910ebdSBaptiste Daroussinrespectively, but treat overlapping changes (i.e., changes that would
77e1910ebdSBaptiste Daroussinbe noted with ==== in the normal listing) differently.
78e1910ebdSBaptiste DaroussinThe overlapping lines from both files will be inserted by the edit script,
79e1910ebdSBaptiste Daroussinbracketed by "<<<<<<" and ">>>>>>" lines.
80e1910ebdSBaptiste Daroussin.It Fl e
81e1910ebdSBaptiste DaroussinProduces output in a form suitable as an input script for the
82e1910ebdSBaptiste Daroussin.Xr ed 1
83e1910ebdSBaptiste Daroussinutility.
84e1910ebdSBaptiste DaroussinThe script may then be used to merge differences common between all
85e1910ebdSBaptiste Daroussinthree files and differences specific to
86e1910ebdSBaptiste Daroussin.Ar file1
87e1910ebdSBaptiste Daroussinand
88e1910ebdSBaptiste Daroussin.Ar file3 .
89e1910ebdSBaptiste DaroussinIn other words, the
90e1910ebdSBaptiste Daroussin.Fl e
91e1910ebdSBaptiste Daroussinoption ignores differences specific to
92e1910ebdSBaptiste Daroussin.Ar file1
93e1910ebdSBaptiste Daroussinand
94e1910ebdSBaptiste Daroussin.Ar file2 ,
95e1910ebdSBaptiste Daroussinand those specific to
96e1910ebdSBaptiste Daroussin.Ar file2
97e1910ebdSBaptiste Daroussinand
98e1910ebdSBaptiste Daroussin.Ar file3 .
99e1910ebdSBaptiste DaroussinIt is useful for backing out changes specific to
100e1910ebdSBaptiste Daroussin.Ar file2
101e1910ebdSBaptiste Daroussinonly.
102e1910ebdSBaptiste Daroussin.It Fl x
103e1910ebdSBaptiste DaroussinProduces an output script suitable for
104e1910ebdSBaptiste Daroussin.Xr ed 1
105e1910ebdSBaptiste Daroussinwith changes
106e1910ebdSBaptiste Daroussinspecific only to all three versions.
107e1910ebdSBaptiste Daroussin.El
108e1910ebdSBaptiste Daroussin.Pp
109e1910ebdSBaptiste DaroussinThe
110e1910ebdSBaptiste Daroussin.Fl E
111e1910ebdSBaptiste Daroussinoption is used by
112e1910ebdSBaptiste Daroussin.Tn RCS
113e1910ebdSBaptiste Daroussin.Xr merge 1
114e1910ebdSBaptiste Daroussinto ensure that overlapping changes in the merged files are preserved
115e1910ebdSBaptiste Daroussinand brought to someone's attention.
116e1910ebdSBaptiste Daroussin.Pp
117e1910ebdSBaptiste DaroussinFor example, suppose lines 7-8 are changed in both
118e1910ebdSBaptiste Daroussin.Ar file1
119e1910ebdSBaptiste Daroussinand
120e1910ebdSBaptiste Daroussin.Ar file2 .
121e1910ebdSBaptiste DaroussinApplying the edit script generated by the command
122e1910ebdSBaptiste Daroussin.Pp
123e1910ebdSBaptiste Daroussin.Dl $ diff3 -E file1 file2 file3
124e1910ebdSBaptiste Daroussin.Pp
125e1910ebdSBaptiste Daroussinto
126e1910ebdSBaptiste Daroussin.Ar file1
127e1910ebdSBaptiste Daroussinresults in the file:
128e1910ebdSBaptiste Daroussin.Bd -literal -offset indent
129e1910ebdSBaptiste Daroussinlines 1-6
130e1910ebdSBaptiste Daroussinof file1
131e1910ebdSBaptiste Daroussin<<<<<<< file1
132e1910ebdSBaptiste Daroussinlines 7-8
133e1910ebdSBaptiste Daroussinof file1
134e1910ebdSBaptiste Daroussin=======
135e1910ebdSBaptiste Daroussinlines 7-8
136e1910ebdSBaptiste Daroussinof file3
137e1910ebdSBaptiste Daroussin>>>>>>> file3
138e1910ebdSBaptiste Daroussinrest of file1
139e1910ebdSBaptiste Daroussin.Ed
140e1910ebdSBaptiste Daroussin.Pp
141e1910ebdSBaptiste DaroussinThe default output of
142e1910ebdSBaptiste Daroussin.Nm
143e1910ebdSBaptiste Daroussinmakes notation of the differences between all files, and those
144e1910ebdSBaptiste Daroussindifferences specific to each pair of files.
145e1910ebdSBaptiste DaroussinThe changes are described by the commands necessary for
146e1910ebdSBaptiste Daroussin.Xr ed 1
147e1910ebdSBaptiste Daroussinto create the desired target from the different versions.
148e1910ebdSBaptiste DaroussinSee
149e1910ebdSBaptiste Daroussin.Xr diff 1
150e1910ebdSBaptiste Daroussinfor a description of the commands.
151e1910ebdSBaptiste Daroussin.Bl -tag -width "====="
152e1910ebdSBaptiste Daroussin.It Li \&====
153e1910ebdSBaptiste DaroussinThe lines beneath this notation are ranges of lines which are different
154e1910ebdSBaptiste Daroussinbetween all files.
155e1910ebdSBaptiste Daroussin.It \&==== Ns Va n
156e1910ebdSBaptiste DaroussinThe lines beneath this notation are ranges of lines which are exclusively
157e1910ebdSBaptiste Daroussindifferent in file
158e1910ebdSBaptiste Daroussin.Va n .
159e1910ebdSBaptiste Daroussin.El
160e1910ebdSBaptiste Daroussin.Sh SEE ALSO
161e1910ebdSBaptiste Daroussin.Xr diff 1 ,
162e1910ebdSBaptiste Daroussin.Xr ed 1 ,
163e1910ebdSBaptiste Daroussin.Xr merge 1 ,
164e1910ebdSBaptiste Daroussin.Xr rcs 1 ,
165e1910ebdSBaptiste Daroussin.Xr sdiff 1
166e1910ebdSBaptiste Daroussin.Sh HISTORY
167e1910ebdSBaptiste DaroussinA
168e1910ebdSBaptiste Daroussin.Nm
169e1910ebdSBaptiste Daroussincommand appeared in
170e1910ebdSBaptiste Daroussin.At v7 .
171e1910ebdSBaptiste Daroussin.Sh BUGS
172e1910ebdSBaptiste DaroussinThe
173e1910ebdSBaptiste Daroussin.Fl e
174e1910ebdSBaptiste Daroussinoption cannot catch and change lines which have
175e1910ebdSBaptiste Daroussin.Ql \&.
176e1910ebdSBaptiste Daroussinas the first and only character on the line.
177e1910ebdSBaptiste DaroussinThe resulting script will fail on that line
178e1910ebdSBaptiste Daroussinas
179e1910ebdSBaptiste Daroussin.Ql \&.
180e1910ebdSBaptiste Daroussinis an
181e1910ebdSBaptiste Daroussin.Xr ed 1
182e1910ebdSBaptiste Daroussinediting command.
183