2AYYR6FKMBQ7FS2U5DNFGZCYPJ2A2L7WSXKHIIYPHV5UWPM4VYYAC # pijul addAdd files and directories to the tree## Usage```cmdpijul add [-h | --help] [--recursive] [-V | --version] [--repository <repository>] [<file>…]```## DescriptionAdds directories and files to the[tree](./getting_started.html#definitions), which is the set of filescurrently tracked by Pijul.The tree's structure is supposed to mirror almost exactly thefilesystem, with a few extra bits of information to synchronise itwith the pristine.## ExampleWhen starting a Rust project, it is common to add `Cargo.toml` and`src/lib.rs` from the repository root:```pijul add Cargo.toml src/lib.rs```## Options- -h, --helpPrint a help message and exit.- --recursiveRecursively add all the files in the directories in argument \<file\>…- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- \<file\>…A list of files to add to the tree.
# pijul addAdds a path to the tree.Pijul has an internal tree to represent the files currently tracked. This command adds files anddirectories to that tree.## Usage```pijul add [OPTIONS] [paths]...```## Args`<paths>...``Paths to add to the internal tree`Paths to add to the internal tree## Flags`-h, --help``Prints help information`Prints help information`-V, --version``Prints version information`Prints version information## Options`--repository <repo-path>`--repository <repo-path>`Set the repository in which paths must be added. Defaults to the first ancestor of the`Set the repository in which paths must be added. Defaults to the first ancestor of the`current directory that contains a `.pijul` directory`current directory that contains a `.pijul` directory-V, --version-h, --help<paths>...
# pijul applyApply patches by their hash or patch file## Usage```cmdpijul apply [-h | --help] [-V | --version] [--repository <repository>] [--branch <branch>] [<patch>…]```## DescriptionThis command is essentially meant to be called by [pijulpush](./reference/push.html) over SSH.It applies patches to a branch in the pristine, either to the currentbranch (if `--branch` is not specified), or to branch \<branch\>.If that branch does not exist, it will be created.\<patch\> must be a list of patch hashes or internal identifiers. Ifempty, gzipped-compressed patch files are read from the standardinput. In other words, running `pijul apply hashhashhash` isequivalent on Unix to running `cat .pijul/patches/hashhashhash.gz |pijul apply`.## ExampleApply the first patch in Pijul's development repository:```pijul apply AbaeCc9Y9jxGRgkapqjMv66dfZEvSUf3biXZa2LpcYx-CY646dQ9HFmL4R6x9Mez_cCz5QwW4w38P1O4bwVsjjI```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- --branch \<branch\>Apply the patches to branch \<branch\> instead of the current branch.- \<patch\>…A list of patch hash or internal identifiers to apply to the branch.
# pijul applyApplies one channel to other## Usage```pijul apply [FLAGS] [OPTIONS] [change]```## Args`<change>`## Flags`--deps-only``-h, --help`Prints help information`-V, --version`Prints version information## Options`--channel <channel>``--repository <repo-path>`
# pijul archiveCreates an archive of the repository## Usage```pijul archive [FLAGS] [OPTIONS] -o <name>```## FlagsPrints help information`-k`Do not check certificates`-V, --version`Prints version information## Options`--change <change>...``--channel <channel>``-o <name>``--prefix <prefix>``--remote <remote>``--repository <repo-path>``--state <state>``-h, --help`
# pijul changeShows information about a particular change## Usage```pijul change [OPTIONS] [hash]```## Args`<hash>`## FlagsPrints help information`-V, --version`Prints version information## Options`--channel <channel>``--repository <repo-path>``-h, --help`
# pijul channelManages different channels## Usage```pijul channel [OPTIONS] [SUBCOMMAND]```## Flags`-V, --version`Prints version information## Options`--repository <repo-path>`## Subcommands`delete`Delete a channel. The channel must not be the current channel`help`Prints this message or the help of the given subcommand(s)`rename`Rename a channel`switch`Switch to a channel. There must not be unrecorded changes in the working copy`-h, --help`Prints help information
# pijul cloneClone a repository into a new directory## Usage```cmdpijul clone [-h | --help] [-V | --version] [ --from-branch <from_branch> ] [--patch <patch> …] [(-p | --port) <port>] [--to-branch <to_branch>] <from> [to]```## DescriptionClone a single branch of a remote repository, i.e. initialise a newrepository, and apply all patches from a branch from the remoterepository. This is equivalent to `pijul init`, followed by `pijulpull`.## ExampleFrom outside a repository:```pijul clone https://nest.pijul.com/pijul_org/pijul```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --from-branch \<from-branch\>Clone branch \<from-branch\> from the remote repository, instead ofthe default branch (which is "master").- \<from\>A URI to clone. At the moment, only local paths, SSH paths (such as`me@example.com:path/to/repository`) and HTTP(S) URLs are supported.- --patch \<patch\> …Pull patch \<patch\> and its dependencies. Can appear multiple times on the command line.- -p \<port\>, --port \<port\>If the repository is accessed over SSH, the port of the remote SSHserver, defaulting to 22 (the standard SSH port).- --to-branch \<branch\>Store this branch as \<branch\> instead of using the same name asthe remote branch.- [to]Path to the local directory where the repository will be cloned,defaulting to the current directory followed by the basename of theURI in <from>.
# pijul cloneClones an existing pijul repository## Usage```pijul clone [FLAGS] [OPTIONS] <remote> [--] [path]```## Args`<remote>``<path>`## Flags`-h, --help`Prints help information`--lazy`only download changes with alive contents`-k`Do not check certificates`-V, --version`Prints version information## Optionsset the remote channel [default: main]`--path <partial-paths>...`clone this path`--state <state>`clone this state`--change <change>`clone this change and its dependencies`--channel <channel>`
# pijul creditAnnotate a file with the patch that last touched each line## Usage```cmdpijul credit [-h | --help] [-V | --version] [--repository <repository>] [--branch <branch>] <file>```## DescriptionPrints an annotated version of the file named `<file>` *in thepristine* on the standard output, where each line is prefixed by thepatch that introduced it (or the last patch that modified it).This command doesn't take the version of `<file>` in the working copy,and only considers the pristine.## ExampleFrom the repository root, with a file named `Cargo.toml` in directory `pijul`:```pijul credit pijul/Cargo.toml```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- --branch \<branch\>Annotate the file in branch \<branch\> instead of the current branch.- \<file\>The name of the file to annotate
# pijul creditShows which patch last affected each line of the every file## Usage```pijul credit [OPTIONS] <file>```## Args`<file>`## FlagsPrints help information`-V, --version`Prints version information## Options`--channel <channel>``--repository <repo-path>``-h, --help`
# pijul diffShow changes since the last recorded version## Usage```cmdpijul diff [-h | --help] [-V | --version] [ --myers ] [ --patience ] [--repository <repository>] [--branch <branch>] [prefix…]```## DescriptionPrint the difference between the pristine and the working copy, or inother words, what would be recorded if `record` were called now.This command can compare another branch than the current one using the`--branch` argument, and can compare the directory or file in`<prefix>` instead of the whole directory.## ExampleShow all the changes in the "src" and "tests" directories.```pijul diff src tests```## Options- -h, --helpPrint a help message and exit.- --myersUse [Myers' diff algorithm](../theory/diff.md). This is the default behaviour, and this flag exists for consistency only.- --patienceUse [Patience diff](https://en.wikipedia.org/wiki/Patience_sorting#Algorithm_for_finding_a_longest_increasing_subsequence), with Myers diff between common unique lines.- -V, --versionPrint 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 (the default).- [prefix…]A (possibly empty) list of paths in the repository to compare withthe pristine. If empty, the whole repository is compared.
# pijul diffShows difference between two channels/changes## Usage```pijul diff [FLAGS] [OPTIONS] [prefixes]...```## Args`<prefixes>...`## Flags`-h, --help`Prints help information`--json``--short``--tag``-V, --version`Prints version information## Options`--channel <channel>``--repository <repo-path>`
# pijul forkFork a branch into a new one.## Usage```cmdpijul fork [-h | --help] [-V | --version] [--repository <repository>] [--branch <branch>] <to>```## DescriptionCreate a new branch with the same contents as branch `<branch>`, or asthe current branch if `--branch` is not specified.Branches in Pijul are light, and running this command writes very fewbytes on the disk.Note that the purpose of branches in Pijul is quite different fromGit, since Git's "feature branches" can usually be implemented byjust patches.## ExampleWhen initialising a repository, a branch called "master" iscreated. To create its first fork, and call it "unstable", do:```pijul fork unstable```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- --branch \<branch\>Fork branch \<branch\> instead of the current branch (the default).- [to]Name of the new branch.
# pijul forkCreate a new channel## Usage```pijul fork [OPTIONS] <to>```## Args`<to>`## Flags`-h, --help`Prints help information`-V, --version`Prints version information## Options`--change <change>``--channel <channel>``--repository <repo-path>`
# pijul initInitialise a new repository## Usage```cmdpijul init [-h | --help] [-V | --version] <directory>```## DescriptionInitialise a new repository in directory `<directory>`, if specified,or in the current directory else.## Example```pijul init```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- \<directory\>The directory of the new repository.
# pijul initInitializes an empty pijul repository## Usage```pijul init [OPTIONS] [path]```## Args`<path>`## Flags`-h, --help`Prints help information`-V, --version`Prints version information## Options`--channel <channel>`
# pijul logList all the patches in a branch## Usage```cmdpijul log [-h | --help] [-V | --version] [ --hash-only ] [ --internal-id <internal-id>… ] [--repository <repository>] [--branch <branch>] [--grep <regex>]```## DescriptionPrints the list of all patches applied to branch `<branch>` if`--branch` is present, or to the current branch else. The patches areprinted in the reverse order in which they were applied to the branch,and the information printed includes patch hashes, internalidentifiers, among others.If desired, a restricted subset of the changes, specified by `--internal-id`, can be listed. Here, `<internal-id>` is a list of internal patch identifiers, where an internal patch identifier is of the form `tp4Jz1j2PEY`.`--hash-only` prints a list of patches in a machine-readable format, to be exchanged when comparing patchsets between repositories.## ExampleFrom the repository root:```pijul log```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- --branch \<branch\>Print changes on branch \<branch\> instead of the current branch.- --hash-onlyPrint the changes in binary format. This option is essentially meantto be used when calling this command remotely over SSH.- --internal-id \<internal-id\>…Restrict the list to the set of patches specified by\<internal-id\>. One could for example run```pijul log --internal-id EuTRmk0mzNk tp4Jz1j2PEY```- --grep \<regex\>Select only patches matching the supplied regular expression (mayappear several times).
# pijul logShow the entire log of changes## Usage```pijul log [FLAGS] [OPTIONS]```## Flags`--description``--hash-only``-h, --help`Prints help information`--state`## Options`--channel <channel>``--repository <repo-path>`Prints version information`-V, --version`
# pijul lsList files in the repository## Usage```cmdpijul ls [-h | --help] [-V | --version] [--repository <repository>] [dir]…```## DescriptionLists all the files in directory `<dir>`, that are currently trackedin repository `<repository>` (or the repository in the currentdirectory if `--repository` is missing).## Example```pijul ls src tests```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- [div]…List of directories to list. If this list is empty, the whole directory is listed.
# pijul lsLists files tracked by pijul## Usage```pijul ls [OPTIONS]```## FlagsPrints help information`-V, --version`## Options`--repository <repo-path>`Prints version information`-h, --help`
# pijul mvMove and rename files and directories## Usage```cmdpijul mv [-h | --help] [-V | --version] [--repository <repository>] <files>…```## DescriptionMove and/or rename files and directories. The files listed in`<files>` must all be in the tree. `<files>` must contain at least twopaths.If `<files>` contains exactly two paths, and the second path is anexisting directory, the first file or directory is moved to the secondone. If the second path is not an existing directory, the name of thefirst file or directory is changed to the second one.If `<files>` contains n > 2 paths, the last path *must* be an existingdirectory, and the first n - 1 files or directories are moved to thelast path.## Example```pijul mv a b```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- \<files\>…List of at least two paths, as explained in the description above.
# pijul mvMoves a file in the working copy and the tree## Usage```pijul mv [OPTIONS] [paths]...```## Args`<paths>...`## Flags`-h, --help`Prints help information`-V, --version`Prints version information## Options`--repository <repo-path>`
# pijul pullPull a patch from a remote repository## Usage```cmdpijul pull [-h | --help] [-V | --version] [--repository <repository>] [--from-branch <from_branch>] [(-p | --port) <port>] [--to-branch <to_branch>] [--set-remote <set-remote>] [--set-default] [-a | --all] [remote]```## DescriptionPull patches from a remote repository to a branch of a localrepository to a branch. Patch selection is either interactive, orincludes all patches in the current branch if `-a` (or `--all`) ispresent.If the `<to_branch>` does not exist in the local repository, it willbe created. If the `<from_branch>` does not exist in the remoterepository, this command does nothing.This command can also save remote repositories, in two different ways:- If `--set-default` is specified, the remote destination becomes thedefault destination, and it is not necessary to give it aname. Subsequent pulls to the same address can be done by simplyrunning `pijul pull`.It is not necessary to give a name (using `--set-remote`) to thedefault destination, although it is possible.- If `--set-remote` is specified, the remote destination is saved as`<set-remote>`, and can be reused in subsequent commands. Forexample, after calling `pijul pull me@nest.pijul.com:example--set-remote nest`, pulling from the same address(me@nest.pijul.com:example) again can be done by running`pijul pull nest`.Saved remote repositories are written to ".pijul/meta.toml" (at theroot of the repository).## Examples```pijul pull me@nest.pijul.com:example --set-remote nestpijul pull nest -a```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- --from-branch \<from-branch\>Pull patches from branch \<from-branch\> in the remote repository,instead of the default branch ("master").- -p \<port\>, --port \<port\>If the remote repository is accessed over SSH, the port of theremote SSH server, defaulting to 22 (the standard SSH port).- --to-branch \<to-branch\>Pull patches to branch \<to-branch\> in the local repository,instead of the current branch.- --set-remote \<set-remote\>Save this remote repository as \<set-remote\>. In subsequentcommands, name \<set-remote\> can be used instead of this URI.- --set-defaultMake this remote repository the default. If subsequent commandsinvolving remote repositories are called without a URI, the defaultremote repository will be used as the URI.- -a, --allDon't select patches to pull interactively, pull all patchesinstead.- [remote]Name or URI of the remote repository. A name can be for instance"nest", while a URI can be a HTTP or HTTPS URL, or an SSH address(such as "me@nest.pijul.com:repository"), or a local path.
# pijul pullPulls changes from a remote upstream## Usage```pijul pull [FLAGS] [OPTIONS] [from] [-- <changes>...]```## Args`<from>``<changes>...`Pull changes from the local repository, not necessarily from a channel## Flags`-a, --all``--full`Download full changes, even when not necessary`-h, --help`Prints help information`-k`Do not check certificates`-V, --version`Prints version information## Options`--from-channel <from-channel>``--path <path>``--repository <repo-path>``--channel <channel>`
# pijul pushPush a patch to a remote repository## Usage```cmdpijul push [-h | --help] [-V | --version] [--repository <repository>] [--from-branch <from_branch>] [(-p | --port) <port>] [--to-branch <to_branch>] [--set-remote <set-remote>] [--set-default] [-a | --all] [--force] [remote]```## DescriptionPush patches from a branch of a local repository to a branch of aremote repository. Patch selection is either interactive, or includesall patches in the current branch if `-a` (or `--all`) is present.If the `<to_branch>` does not exist in the remote repository, it willbe created. If the `<from_branch>` does not exist in the localrepository, this command does nothing.This command can also save remote repositories, in two different ways:- If `--set-default` is specified, the remote destination becomes thedefault destination, and it is not necessary to give it aname. Subsequent pushes to the same address can be done by simplyrunning `pijul push`.It is not necessary to give a name (using `--set-remote`) to thedefault destination, although it is possible.- If `--set-remote` is specified, the remote destination is saved as`<set-remote>`, and can be reused in subsequent commands. Forexample, after calling `pijul push me@nest.pijul.com:example--set-remote nest`, pushing to the same address(me@nest.pijul.com:example) again can be done by running`pijul push nest`.Saved remote repositories are written to ".pijul/meta.toml" (at theroot of the repository).Finally, push refuses to apply patches to the remote side if theremote side has patches not in the local branch. This behaviour can beoverriden with `--force`.## Examples```pijul push me@nest.pijul.com:example --set-remote nestpijul push nest```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- --from-branch \<from-branch\>Push patches from branch \<from-branch\> in the local repository,instead of the current branch (the default).- -p \<port\>, --port \<port\>If the remote repository is accessed over SSH, the port of theremote SSH server, defaulting to 22 (the standard SSH port).- --to-branch \<to-branch\>Push patches to branch \<to-branch\> in the remote repository,instead of the default branch ("master").- --set-remote \<set-remote\>Save this remote repository as \<set-remote\>. In subsequentcommands, name \<set-remote\> can be used instead of this URI.- --set-defaultMake this remote repository the default. If subsequent commandsinvolving remote repositories are called without a URI, the defaultremote repository will be used as the URI.- -a, --allDon't select patches to push interactively, push all patchesinstead.- --forceForce a non-fast-forward push.- [remote]Name or URI of the remote repository. A name can be for instance"nest", while a URI can be a HTTP or HTTPS URL, or an SSH address(such as "me@nest.pijul.com:repository"), or a local path.
# pijul pushPushes changes to a remote upstream## Usage```pijul push [FLAGS] [OPTIONS] [to] [-- <changes>...]```## Args`<changes>...`Push only these changes## Flags`-a, --all``-h, --help`Prints help information`-k`Do not check certificates`-V, --version`Prints version information## Options`--channel <channel>``--path <path>``--repository <repo-path>``--to-channel <to-channel>``<to>`
# pijul recordRecord the changes in the working copy, creating a patch## Usage```cmdpijul record [-h | --help] [-V | --version] [--repository <repository>] [--branch <branch>] [(-A | --author) <author>] [(-m | --message) <message>] [--depends-on <depends-on>…] [-a | --all] [prefix]…```## DescriptionRecord is the only command for creating patches in Pijul.This command compares the pristine with the working copy, creates apatch, applies it to the pristine, and synchronises file moves.A patch is then saved to .pijul/patches (from the root of therepository), and can later be exchanged with[push](./reference/push.html) and [pull](./reference/pull.html).By default, the comparison happens between the whole pristine and thewhole 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 thefirst time, a file named ~/.pijulconfig/config.toml will be created, andyour author name will be saved there.When using Pijul, it is highly recommended to sign yourpatches. Record automatically does this after [keys have beensetup](./signing_patches.html).## Interative useWhen `pijul record` is invoked interactively, the user will be asked aseries 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.## Examples```pijul record -a -m "My first patch" -A "me <me@example.com>" src```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint 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 theworking copy.- -A, --authorSet the patch's author. By default, the first patch you create onany repository after installing Pijul saves your author name in"~/.pijulconfig/config.toml".- -m, --messageAdd a message to this patch, summarising your changes.- --depends-on \<depends-on\>Add a list of dependencies to this patch. Dependencies are normallyinferred by Pijul, but some semantic dependencies cannot beinferred. Use this command to add them.- -a, --allDon't select patches to push interactively, push all patchesinstead.- [prefix]…Restrict the comparison to a list of paths instead of comparing thewhole repository.
# pijul recordCreates a new change## Usage```pijul record [FLAGS] [OPTIONS] [prefixes]...```## Args`<prefixes>...`## Flags`-a, --all``-h, --help`Prints help information`-S``--stdin``--tag``-V, --version`## Options`--amend <amend>``--author <author>``--channel <channel>``-m, --message <message>``--repository <repo-path>``--timestamp <timestamp>`Prints version information
# pijul remote delete## Usage```pijul remote delete <remote>```## Args`<remote>`## Flags`-h, --help`Prints help information`-V, --version`Prints version information
# pijul remoteView and modify saved remote repositories.## Usage```pijul remote [-h | --help] [-V | --version] [SUBCOMMAND]```## DescriptionPijul can save remote repositories under names for easy usage. The remotecommand can show and update the names for remote repositories.## Subcommands- **default:** sets the default remote to be used- **delete:** remotes the name for the remote- **list:** lists current remotes- **set:** adds or updates a remote
# pijul remoteManages remote repositories## Usage```pijul remote [OPTIONS] [SUBCOMMAND]```## Flags`-h, --help Prints help information``-V, --version Prints version information`## Options`--repository <repo-path>`## Subcommands`delete``help Prints this message or the help of the given subcommand(s)`
# pijul remoteManages remote repositories## Usage```pijul remote [OPTIONS] [SUBCOMMAND]```## Flags`-h, --help`Prints help information`-V, --version`Prints version information## Options`--repository <repo-path>`## Subcommands`delete``help`Prints this message or the help of the given subcommand(s)
# pijul removeStop tracking a file (does *not* delete the file from the filesystem).## Usage```pijul remove [-h | --help] [-V | --version] [--repository <repository>] <files>…```## DescriptionRemoves files from the tree. This does not remove files from the localfilesystem. However, a patch removing a file will delete it fromremote repositories when pushing or pulling.## Example```pijul mv a b```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- \<files\>…List of files to remove from the tree.
# pijul removeRemoves a file from the tree and prestine## Usage```pijul remove [OPTIONS] [paths]...```## Args`<paths>...`## Flags`-h, --help`Prints help information`-V, --version`Prints version information## Options`--repository <repo-path>`
# pijul resetReverts the working copy to the given Hash## Usage```pijul reset [FLAGS] [OPTIONS] [files]...```## Args`<files>...`## Flags`--dry-run``-h, --help`Prints help information`-V, --version`## Options`--change <change>``--channel <channel>``--repository <repo-path>`Prints version information
# pijul unrecordUnapplies a patch from a branch.## Usage```cmdpijul unrecord [-h | --help] [-V | --version] [--repository <repository>] [--branch <branch>] <patch>…```## DescriptionUnapplies a patch from a branch of the pristine (defaulting to thecurrent branch if `--branch` is absent). After calling this command,running `pijul record` on the same branch will ask to create the samepatch again.This is an essential tool to undo mistakes, and has a variety of otheruses. It is used internally to merge remote patches with unrecordedchanges when pulling and pushing, for instance.## Example```pijul unrecord AfcVxwCRgKbf-aCS0wOuXAekoRNl9xIGM-_0A_KzgZPEZ_55-5klp15WWTjFRtLVDlacWDAas11yrROdlyU11i8```## Options- -h, --helpPrint a help message and exit.- -V, --versionPrint the version of Pijul and exit.- --repository \<repository\>Don't run this command in the current directory, run it in \<repository\> instead.- --branch \<branch\>Unrecord on branch \<branch\> instead of the current branch (the default).- \<patch\>…A list of patch hashes to unrecord. Pijul will ask interactivelywhich patches to unrecord if and only if this list is empty.
# pijul unrecordUnrecords all changes upto the given hash## Usage```pijul unrecord [OPTIONS] [change-id]...```## Args`<change-id>...`identifier of the change (unambiguous prefixes are accepted)## Flags`-h, --help`Prints help information`-V, --version`Prints version information## Options`--channel <channel>``--repository <repo-path>`