nix registry pin

Warning: This program is experimental and its interface is subject to change.

# Name

`nix registry pin` - pin a flake to its current version or to the current version of a flake URL

# Synopsis

`nix registry pin` [option...] url locked

# Examples

- Pin `nixpkgs` to its most recent Git revision:

      # nix registry pin nixpkgs

  Afterwards the user registry will have an entry like this:

      nix registry list | grep '^user '
      user   flake:nixpkgs github:NixOS/nixpkgs/925b70cd964ceaedee26fde9b19cc4c4f081196a

  and `nix flake info` will say:

      # nix flake info nixpkgs
      Resolved URL:  github:NixOS/nixpkgs/925b70cd964ceaedee26fde9b19cc4c4f081196a
      Locked URL:    github:NixOS/nixpkgs/925b70cd964ceaedee26fde9b19cc4c4f081196a
      …

- Pin `nixpkgs` in a custom registry to its most recent Git revision:

      # nix registry pin --registry ./custom-flake-registry.json nixpkgs

# Description

This command adds an entry to the user registry that maps flake reference url to the corresponding locked flake reference, that is, a flake reference that specifies an exact revision or content hash. This ensures that until this registry entry is removed, all uses of url will resolve to exactly the same flake.

Entries can be removed using `nix registry remove`.

# Options

- `--registry` registry
  The registry to operate on.

Common evaluation options:

- `--arg` name expr
  Pass the value expr as the argument name to Nix functions.

- `--argstr` name string
  Pass the string string as the argument name to Nix functions.

- `--eval-store` store-url
  The Nix store to use for evaluations.

- `--impure`
  Allow access to mutable paths and repositories.

- `--include` / `-I` path
  Add path to the list of locations used to look up `<...>` file names.

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