.TH nvd 1 2021-04-06 nvd "User Commands" .SH NAME nvd \- Nix/NixOS package version diff tool .SH SYNOPSIS .P .B nvd [ -h | --help ] .P .B nvd [ --color=(auto|always|never) ] root1 root2 .SH DESCRIPTION .P .B nvd is a tool for diffing the versions of all store paths in the closures of two Nix store paths, neatly summarizing the differences. This is mainly intended for comparing two system configurations and is inspired by the output of .B emerge -pv from Gentoo's Portage package manager. .B nvd could also be likened to the output of Debian's .B apt upgrade -V, or any equivalent from other distributions' package managers. .B nvd isn't limited to comparing system configurations though, and can work with any two store paths. .P When given two system configurations, .B nvd distinguishes between packages that are explicitly included in .B environment.systemPackages, versus the rest of the packages that make up the system. The former packages are dubbed .I selected packages. .B nvd marks and bolds any selected packages it lists. Additionally, .B nvd reports on any changes to packages' selection states between the two configurations. This is done by looking at all packages that are referenced directly from the configurations' system paths, within each .I /sw subdirectory. When either of the arguments isn't a system configuration, i.e. when either of the arguments is missing a .I sw subdirectory, then .I selected packages refer to direct dependencies of each of the arguments instead, and the comparison is still performed. .B nvd doesn't actually know if a Nix package represents a system configuration; it just uses the existence of a .I sw directory as a heuristic. .SH OPTIONS .P .TP -h, --help Displays a brief help message. .TP --color=(auto|always|never) When to display colour. The default .B auto detects whether stdout is a terminal and only uses colour if it is. Passing .B always forces colour to always be used, and passing .B never forces colour to never be used.