Click or drag to resize

RepositoryGetDepotFileDiffs Method

Get content and existence diff details for two depot files.

Namespace:  Perforce.P4
Assembly:  p4api.net (in p4api.net.dll) Version: 2023.2.255.3501
Syntax
public IList<DepotFileDiff> GetDepotFileDiffs(
	string filespecleft,
	string filespecright,
	Options options
)

Parameters

filespecleft
Type: SystemString
filespecright
Type: SystemString
options
Type: Perforce.P4Options

Return Value

Type: IListDepotFileDiff
Remarks

p4 help diff2

diff2 -- Compare one set of depot files to another

p4 diff2 [options] fromFile[rev] toFile[rev]
p4 diff2 [options] -b branch [[fromFile[rev]] toFile[rev]]
p4 diff2 [options] -S stream [-P parent] [[fromFile[rev]] toFile[rev]]

options: -d<flags> -Od -q -t -u

'p4 diff2' runs on the server to compare one set of depot files (the
'source') to another (the 'target'). Source and target file sets
can be specified on the 'p4 diff2' command line or through a branch
view.

With a branch view, fromFile and toFile are optional; fromFile limits
the scope of the source file set, and toFile limits the scope of the
target. If only one file argument is given, it is assumed to be
toFile.

fromFile and toFile can include revision specifiers; by default, the
head revisions are diffed. See 'p4 help revisions' for details
about specifying file revisions.

'p4 diff2' precedes each diffed file pair with a header line of the
following form:

==== source#rev (type) - target#rev (type) ==== summary

A source or target file shown as '<none>' means there is no file
at the specified name or revision to pair with its counterpart.
The summary status is one of the following: 'identical' means file
contents and types are identical, 'types' means file contents are
identical but the types are different, and 'content' means file
contents are different.

The -b flag makes 'p4 diff2' use a user-defined branch view. (See
'p4 help branch'.) The left side of the branch view is the source
and the right side is the target.

The -S flag makes 'p4 diff2' use a generated branch view that maps
a stream (or its underlying real stream) to its parent. -P can be
used to generate the branch view using a parent stream other than
the stream's actual parent.

The -d<flags> modify the output of diffs as follows:

-dn (RCS)
-dc[n] (context)
-ds (summary)
-du[n] (unified)
-db (ignore whitespace changes)
-dw (ignore whitespace)
-dl (ignore line endings).

The optional argument to -dc/-du specifies number of context lines.

The -Od flag limits output to files that differ.

The -q omits files that have identical content and types and
suppresses the actual diff for all files.

The -t flag forces 'p4 diff2' to diff binary files.

The -u flag uses the GNU diff -u format and displays only files
that differ. The file names and dates are in Perforce syntax, but
the output can be used by the patch program.

Examples
To get the depot file diffs between //depot/main/Program.cs and //depot/rel/Program.cs and ignore whitespace changes:
GetDepotFileDiffsCmdOptions opts =
new GetDepotFileDiffsCmdOptions(GetDepotFileDiffsCmdFlags.IgnoreWhitespaceChanges,
0, 0, null,null,null);

IList<DepotFileDiff> target =
Repository.GetDepotFileDiffs("//depot/main/Program.cs",
"//depot/rel/Program.cs", opts);
To get the depot files that differ between all files under //depot/main/... and //depot/rel/... and display in GNU format only listing files that differ:
GetDepotFileDiffsCmdOptions opts =
new GetDepotFileDiffsCmdOptions(GetDepotFileDiffsCmdFlags.GNU,
0, 0, null,null,null);

IList<DepotFileDiff> target =
Repository.GetDepotFileDiffs("//depot/main/...", "//depot/rel/...", opts);
See Also