Usage:
zzdiff
[ option ] ... file-or-url1 file-or-url2
-
Show contents differences between file-or-url1 and file-or-url2 in DIFF format.
The "path" (relevant, e.g., for the "--path" command line option, see below) is "" (the empty string).
One of the two inputs may be "-" (standard input).
zzdiff
[ option ] ... dir1 dir2
-
Show which files were added (missing in dir1) or deleted (missing in dir2) and their
subdirectories, and any contents differences for the remaining files in DIFF format. The "path" (relevant,
e.g., for the "--path" command line option, see below) is relative to dir1, e.g. "file.txt"
or "subdir/file.zip!dir/file.txt" or "archive.tgz%!dir/file.txt" or "dir/file.Z%".
Description:
Compares files and web resources line by line; detects directories, compressed and archive files, and even
nested archives, and compares their entries instead of their raw contents.
The default output format is the "normal
format", also known as the "traditional format". Other output formats can be chosen through command
line options, see "Output generation", below.
Options:
General
--help
-
Print this text and terminate.
--7z-input-file-password
value
-
Password to decrypt password-protected 7ZIP input files.
--zip-input-file-password
value
-
Password to decrypt password-protected zip archive entries.
--password
value
-
All of the above.
File selection
--path
glob
-
Process only matching files/entries, e.g."
dir/file.zip!dir/file
" or "**/file
".
See also "Globs", below.
--look-into
format-glob:path-glob
-
Look into compressed and archive contents if its format matches format-glob and its path matches the
path-glob.
The default is to look into any recognised archive or compressed contents.
Supported archive formats in this runtime configuration are:
${archive.formats}
Supported compression formats in this runtime configuration are:
${compression.formats}
--path-equivalence
path-regex
--pe
path-regex
-
Files with different names map iff their names match the path-regex and all capturing groups are
equal. May be given more than once.
--ne
path-regex
-
Deprecated - Equivalent with "
--path-equivalence
path-regex".
--no-recurse-subdirctories
-
Don't recurse through subdirectories; just compare the existence of subdirectories.
Content processing
--disassemble
--da
-
Disassemble .class files.
--da-verbose
-
When disassembling .class files, include a constant pool dump, constant pool indexes, and hex dumps of all
attributes in the disassembly output.
--da-source-directory
directory
-
When disassembling .class files, look for source files in this directory. Source file loading is disabled by
default.
--da-no-lines
-
When disassembling .class files, don't display lines debug info.
--da-no-vars
-
When disassembling .class files, don't display local variables debug info.
--da-symbolic-labels
-
When disassembling .class files, use symbolic labels /'L12') instead of numeric labels ('#123').
--line-equivalence
path-pattern line-regex
-
Lines in files path-pattern that contain line-regex and all capturing groups are equal are
regarded as equal.
--ignore
path-pattern line-regex
-I
path-pattern line-regex
-
Ignore differences in files path-pattern where all lines (deleted, changed or added) match the given
line-regex.
--ignore-whitespace
-w
-
Ignore whitespace differences.
--added-file
REPORT
|COMPARE_WITH_EMPTY
|IGNORE
--deleted-file
REPORT
|COMPARE_WITH_EMPTY
|IGNORE
-
How to deal with added resp. deleted files:
- REPORT (the default):
-
Print "File added path", resp. "File deleted path" (or, with "--exist" or "--brief",
print "+ path" resp. "- path").
- COMPARE_WITH_EMPTY:
-
Generate a diff document by comparing with the empty document.
- IGNORE:
-
Do nothing.
--new-file
-N
-
Treat absent files as empty. This is shorthand for "
--added-file COMPARE_WITH_EMPTY --deleted-file
COMPARE_WITH_EMPTY
".
--unidirectional-new-file
-
Treat added files as (previously) empty; deleted files are only reported. This is shorthand for "
--added-file COMPARE_WITH_EMPTY --deleted-file REPORT
".
--unchanged-files
-
Also report unchanged files.
--encoding
charset-name
-
Encoding of the files being compared (defaults to the JVM default charset, "${file.encoding}").
Output generation
--out
output-file
-
Write DIFF to output-file instead of STDOUT.
--normal
-
Output "normal diff format"; this is the default.
--exist
-
Report only which files were added or deleted (do not report changed content).
--brief
-q
-
Report only which files were added, deleted or changed.
--context
-c
-
Output "context diff format" with three
lines of context.
--Context
amount
-C
amount
-
Output "context diff format" with
amount lines of context.
--unified
-u
-
Output "unified diff format" with three
lines of context.
--Unified
amount
-
Output "unified diff format" with
amount lines of context.
--keep-going
-
Report errors and continue with next file.
--sequential
-
Scan directories strictly sequentially. The default is to parallelize the directory scan in multiple threads.
--java-tokenization
-
Regard documents as streams of Java tokens; the whitespace between tokens (including line breaks) is then
insignificant.
--ignore-c-style-comments
-
Don't regard C-style comments ("
/* ... */
") as relevant for comparison.
--ignore-c++-style-comments
-
Don't regard C++-style comments ("
// ...
") as relevant for comparison.
--ignore-doc-comments
-
Don't regard doc comments ("
/** ... */
") as relevant for comparison.
--nowarn
-
Suppress all output except errors.
--quiet
-
Suppress "normal" output; print only errors and warnings.
--verbose
-
Print verbose messages.
--debug
-
Print verbose and debug messages.
--log
level:logger:handler:formatter:format
-
Add logging at level
FINE
on logger "de.unkrig
" to STDERR using the FormatFormatter
and SIMPLE
format, or the given arguments (which are all optional).
Globs
A glob can have the form
*~*.c~*.h,foo.c
, which means "foo.c plus all that don't end with .c or .h".
Example globs:
dir/file
-
File "file" in directory "dir".
file.gz%
-
Compressed file "file.gz".
file.zip!dir/file
-
Entry "dir/file" in archive file "file.zip".
file.tar.gz%!dir/file
-
Entry "dir/file" in the compressed archive file "file.tar.gz".
*/x
-
File "x" in an immediate subdirectory.
**/x
-
File "x" in any subdirectory.
***/x
-
File "x" in any subdirectory, or any entry "**/x" in any archive file in any subdirectory.
a,dir/file.7z!dir/b
-
File "a" and entry "dir/b" in archive file "dir/file.7z".
~*.c
-
Files that don't end with ".c".
~*.c~*.h
-
Files that don't end with ".c" or ".h".
~*.c~*.h,foo.c
-
"foo.c" plus all files that don't end with ".c" or ".h".