Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Name

nix flake diff-locks - show the differences between the lock files of two flakes

Synopsis

nix flake diff-locks [option…] old-flake new-flake

Examples

  • Show how the locked inputs of two versions of a flake differ:

    # nix flake diff-locks github:NixOS/nix/2.28.0 github:NixOS/nix/2.29.0
    • Updated input 'nixpkgs':
        'github:NixOS/nixpkgs/48d12d5' (2024-12-16)
      → 'github:NixOS/nixpkgs/adaa24f' (2025-05-13)
    
  • Show what has changed in the lock file of the flake in the worktree relative to a previous Git revision:

    # nix flake diff-locks '.?rev=26842787496f2293c676fb36db38dacfd63497e0'
    

    or relative to a Git ref:

    # nix flake diff-locks '.?ref=HEAD'
    

Description

This command shows the differences between the lock files of two flakes old-flake and new-flake: inputs that were added, removed or updated. new-flake defaults to the flake in the current directory. The flakes do not need to use the same lock file format version; a change in the lock file version is also reported.

By default, only the locks contained in the two flakes’ own lock files are compared. With --transitive, inputs that have a lock file of their own are fetched in order to include their transitive locks in the comparison.

Options

  • --transitive

    Include the transitive locks of inputs that have a lock file of their own. This may require fetching those inputs.

Common evaluation options

  • --arg name expr

    Pass the value expr as the argument name to Nix functions.

  • --arg-from-file name path

    Pass the contents of file path as the argument name to Nix functions.

  • --arg-from-stdin name

    Pass the contents of stdin as the argument name to Nix functions.

  • --argstr name string

    Pass the string string as the argument name to Nix functions.

  • --debugger

    Start an interactive environment if evaluation fails.

  • --eval-store store-url

    The URL of the Nix store to use for evaluation, i.e. to store derivations (.drv files) and inputs referenced by them.

  • --impure

    Allow access to mutable paths and repositories.

  • --include / -I path

    Add path to search path entries used to resolve lookup paths

    This option may be given multiple times.

    Paths added through -I take precedence over the nix-path configuration setting and the NIX_PATH environment variable.

  • --override-flake original-ref resolved-ref

    Override the flake registries, redirecting original-ref to resolved-ref.

  • --debug

    Set the logging verbosity level to ‘debug’.

  • --log-format format

    Set the format of log output; one of raw, internal-json, bar or bar-with-logs.

  • --print-build-logs / -L

    Print full build logs on standard error.

  • --quiet

    Decrease the logging verbosity level.

  • --verbose / -v

    Increase the logging verbosity level.

Miscellaneous global options

  • --help

    Show usage information.

  • --offline

    Disable substituters and consider all previously downloaded files up-to-date.

  • --option name value

    Set the Nix configuration setting name to value (overriding nix.conf).

  • --refresh

    Consider all previously downloaded files out-of-date.

  • --repair

    During evaluation, rewrite missing or corrupted files in the Nix store. During building, rebuild missing or corrupted store paths.

  • --version

    Show version information.

Note

See man nix.conf for overriding configuration settings with command line flags.