pijul record

Record the changes in the working copy, creating a patch


pijul record [-h | --help] [-V | --version] [--repository <repository>] [--branch <branch>] [(-A | --author) <author>] [(-m | --message) <message>] [--depends-on <depends-on>…] [-a | --all] [prefix]…


Record is the only command for creating patches in Pijul.

This command compares the pristine with the working copy, creates a patch, applies it to the pristine, and synchronises file moves.

A patch is then saved to .pijul/patches (from the root of the repository), and can later be exchanged with push and pull.

By default, the comparison happens between the whole pristine and the whole working copy. It can also be restricted to a list of paths, specified as [prefix].

If this is the first command to be run after installing Pijul for the first time, a file named ~/.pijulconfig/config.toml will be created, and your author name will be saved there.

When using Pijul, it is highly recommended to sign your patches. Record automatically does this after keys have been setup.

Interative use

When pijul record is invoked interactively, the user will be asked a series of questions with the prompt [ynkad]. The possible answers are:

  • y: include the change in the patch.
  • n: don't include the change in the patch.
  • k: undo the previous answer and go back to the previous change.
  • a: include all the following changes in the patch.
  • d: do not include any of the following changes in the patch.


pijul record -a -m "My first patch" -A "me <me@example.com>" src


  • -h, --help

    Print a help message and exit.

  • -V, --version

    Print the version of Pijul and exit.

  • --repository <repository>

    Don't run this command in the current directory, run it in <repository> instead.

  • --branch <branch>

    Compare branch <branch>, instead of the current branch, with the working copy.

  • -A, --author

    Set the patch's author. By default, the first patch you create on any repository after installing Pijul saves your author name in "~/.pijulconfig/config.toml".

  • -m, --message

    Add a message to this patch, summarising your changes.

  • --depends-on <depends-on>

    Add a list of dependencies to this patch. Dependencies are normally inferred by Pijul, but some semantic dependencies cannot be inferred. Use this command to add them.

  • -a, --all

    Don't select patches to push interactively, push all patches instead.

  • [prefix]…

    Restrict the comparison to a list of paths instead of comparing the whole repository.