Icod.DiffUtils 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet tool install --global Icod.DiffUtils --version 1.0.2
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local Icod.DiffUtils --version 1.0.2
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Icod.DiffUtils&version=1.0.2
                    
nuke :add-package Icod.DiffUtils --version 1.0.2
                    

DIFFUTIL(1)

NAME

diffutil — multi-command wrapper for the managed Icod Diffutils suite

SYNOPSIS

diffutil (cmp|diff|diff3|sdiff) [args...]
diffutil --help
diffutil --version

DESCRIPTION

diffutil is the modern .NET entry point for Icod.DiffUtils. It provides one installed tool command and routes its first operand to the corresponding managed Diffutils implementation:

diffutil cmp   [cmp options and operands]
diffutil diff  [diff options and operands]
diffutil diff3 [diff3 options and operands]
diffutil sdiff [sdiff options and operands]

The router does not launch another process. It invokes the same managed command implementations used by the standalone cmp, diff, diff3, and sdiff executables, preserving their standard input, standard output, standard error, cancellation behavior, diagnostics, and exit status.

Command-specific option parsing is intentionally left to the selected command. For example:

diffutil diff --unified old.txt new.txt
diffutil cmp --verbose first.bin second.bin
diffutil diff3 --merge mine.txt old.txt yours.txt
diffutil sdiff --width=120 left.txt right.txt

Use diffutil COMMAND --help for the selected command's complete option list.

ROUTER OPTIONS

-h, --help : Display the router help and exit successfully.

-v, --version : Display the diffutil version and exit successfully.

An omitted or unknown command is a usage error and returns status 2.

EXIT STATUS

For a valid command selection, diffutil returns the selected command's exit status unchanged. This is important for scripts that use the traditional Diffutils conventions, including status 0 for equality/success, status 1 where the selected comparison command uses it to report differences, and status 2 for trouble or invalid usage.

The router itself returns 0 for its own --help and --version operations and 2 when the command selector is missing or unknown.

DISTRIBUTION MODES

The repository supports two complementary distribution forms.

Conventional .NET tool

The Icod.DiffUtils NuGet tool package installs exactly one command:

diffutil

This is the supported managed-tool interface. The package does not install separate cmp, diff, diff3, or sdiff shims; those commands are selected through the router's first argument.

Traditional executables

The cmp, diff, diff3, and sdiff projects remain standalone executable projects for conventional binary distributions. A traditional ZIP can be assembled from their published outputs and may include diffutil as well.

Version-tagged GitHub releases automatically produce framework-dependent single-file ZIPs for win-x64, linux-x64, and osx-x64. Each archive includes cmp, diff, diff3, sdiff, and diffutil together with the repository license and README, and requires the .NET 10 runtime.

See packaging/README.md for the supported packaging, verification, and release workflow.

IMPLEMENTATION NOTES

diffutil references the four executable projects and Icod.CommandFramework directly. The selected command receives a child CommandContext whose program name is the traditional command name (cmp, diff, diff3, or sdiff), so command diagnostics remain compatible rather than being rewritten as diffutil diagnostics.

The implementation targets .NET 10 and C# 13.

LICENSE

diffutil is an executable work in the Diffutils suite and is distributed under the GNU General Public License version 3 or later. The LICENSE file beside the project is the same GPLv3 license used by the standalone cmp project.

SEE ALSO

cmp(1), diff(1), diff3(1), sdiff(1)

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
1.0.3 118 9/3/2026
1.0.2 115 8/25/2026
1.0.1 107 8/25/2026

Initial mixed-mode diffutil tool distribution.