Provided by: darcs_2.18.4-1build1_amd64 bug

NAME

       darcs - an advanced revision control system

SYNOPSIS

       darcs command <arguments|[options]>...

       Where the commands and their respective arguments are

       darcs help [<darcs_command> [darcs_subcommand]]
       darcs initialize [<directory>]
       darcs add <file|directory> ...
       darcs whatsnew [file|directory]...
       darcs record [file|directory]...
       darcs clone <repository> [<directory>]
       darcs pull [repository]...
       darcs push [repository]
       darcs move <source> ... <destination>
       darcs remove <file|directory> ...
       darcs replace <old> <new> <file> ...
       darcs log [file|directory]...
       darcs annotate [file|directory]
       darcs diff [file|directory]...
       darcs show contents [file]...
       darcs show dependencies
       darcs show files [file|directory]...
       darcs show index
       darcs show pristine
       darcs show repo
       darcs show authors
       darcs show tags
       darcs show patch-index
       darcs test [[initialization] command]
       darcs revert [file|directory]...
       darcs unrevert
       darcs amend [file|directory]...
       darcs rebase pull [repository]...
       darcs rebase apply <patchfile>
       darcs rebase suspend
       darcs rebase unsuspend
       darcs rebase edit
       darcs rebase obliterate
       darcs rebase log
       darcs rebase upgrade
       darcs rollback [file|directory]...
       darcs unrecord
       darcs obliterate
       darcs clean [file|directory]...
       darcs tag [tagname]
       darcs setpref <pref> <value>
       darcs send [repository]
       darcs apply <patchfile>
       darcs optimize clean
       darcs optimize http
       darcs optimize reorder
       darcs optimize enable-patch-index
       darcs optimize disable-patch-index
       darcs optimize compress
       darcs optimize uncompress
       darcs optimize relink
       darcs optimize upgrade
       darcs optimize cache
       darcs dist
       darcs mark-conflicts [file|directory]...
       darcs repair
       darcs convert darcs-2 <source> [<destination>]
       darcs convert export
       darcs convert import [<directory>]
       darcs fetch [repository]...

DESCRIPTION

       Unlike  conventional  revision control systems, Darcs is based on tracking changes, rather than versions:
       it can and does automatically re-order independent changes when needed. This  means  that  in  Darcs  the
       state of a repository should be regarded as a set of patches rather than a sequence of versions.

       Another  distinguishing  feature of darcs is that most commands are interactive by default. For instance,
       `darcs record' (the equivalent of what is usually called `commit')  presents  you  with  each  unrecorded
       change  and  asks  you whether it should be included in the patch to be recorded. Similarly, `darcs push'
       and `darcs pull' present you with each patch, allowing you to select which patches to push or pull.

OPTIONS

       Different options are accepted by different Darcs commands.  Each command's most  important  options  are
       listed  in  the  COMMANDS  section.  For a full list of all options accepted by a particular command, run
       `darcs command --help'.

   Selecting Patches:
       The --patches option yields patches with names matching an *extended* regular expression.   See  regex(7)
       for  details.  The --matches option yields patches that match a logical (Boolean) expression: one or more
       primitive expressions combined by grouping (parentheses) and the complement (not), conjunction (and)  and
       disjunction (or) operators.  The C notation for logic operators (!, && and ||) can also be used.

           --patches=regex is a synonym for --matches='name regex'
           --hash=HASH is a synonym for --matches='hash HASH'
           --from-patch and --to-patch are synonyms for
             --from-match='name... and --to-match='name...
           --from-hash and --to-hash are synonyms for
             --from-match='hash...' and --to-match='hash...'
           sensible combinations of --from-* and --to-* options are possible:
             `darcs log --from-patch='html.*docu' --to-match='date 20040212'`
             `darcs log --from-hash=368089c6969 --to-patch='^fix.*renamed or moved.$'`

       The following primitive Boolean expressions are supported:

           exact STRING - check literal STRING is equal to patch name.
           name REGEX - match REGEX against patch name.
           author REGEX - match REGEX against patch author.
           hunk REGEX - match REGEX against contents of a hunk patch.
           comment REGEX - match REGEX against the full log message.
           hash HASH - match HASH against (a prefix of) the hash of a patch.
           date DATE - match DATE against the patch date.
           touch REGEX - match file paths for a patch.

       Here are some examples:

           darcs log --match 'exact "Resolve issue17: use dynamic memory allocation."'
           darcs log --match 'name issue17'
           darcs log --match 'name "^[Rr]esolve issue17>"'
           darcs log --match 'author "David Roundy"'
           darcs log --match 'author droundy'
           darcs log --match 'author droundy@darcs.net'
           darcs log --match 'hunk "foo = 2"'
           darcs log --match 'hunk "^instance .* Foo where$"'
           darcs log --match 'comment "prevent deadlocks"'
           darcs log --match 'hash c719567e92c3b0ab9eddd5290b705712b8b918ef'
           darcs log --match 'hash c7195'
           darcs log --match 'date "2006-04-02 22:41"'
           darcs log --match 'date "tea time yesterday"'
           darcs log --match 'touch src/foo.c'
           darcs log --match 'touch src/'
           darcs log --match 'touch "src/*.(c|h)"'

COMMANDS

       darcs help [<darcs_command> [darcs_subcommand]]
           Without  arguments,  `darcs help` prints a categorized list of darcs commands and a short description
           of each one. With an extra argument, `darcs help foo` prints detailed help about  the  darcs  command
           foo.

   Most used/starting out:
       darcs initialize [<directory>]
           The  `darcs initialize` command creates an empty repository in the current directory. This repository
           lives in a new `_darcs` directory, which stores version control metadata and settings.

           Existing files and subdirectories are not touched. You can record them with `darcs record --look-for-
           adds`.

           Initialize is commonly abbreviated to `init`.

           Darcs currently supports three kinds of patch semantics. These are called `darcs-1`,  `darcs-2`,  and
           `darcs-3`.  They  are  mutually incompatible, that is, you cannot exchange patches between repos with
           different semantics.

           By default, patches of the new repository are in the darcs-2 semantics. However  it  is  possible  to
           create a repository in darcs-1 semantics with the flag `--darcs-1`, althought this is not recommended
           except for sharing patches with a project that uses patches in the darcs-1 semantics.

           The  `darcs-3` semantics is EXPERIMENTAL and new in version 2.16. It is included only as a technology
           preview and we do NOT recommend to use it for any  serious  work.  The  on-disk  format  is  not  yet
           finalized and we cannot and will not promise that later releases will work with darcs-3 repos created
           with any darcs version before 3.0.

           Initialize  and  clone  commands create the preferences files in _darcs/prefs/ directory of the newly
           created repository. With option --with-prefs-templates `boring` and `binaries` preferences files will
           be filled with default templates.  If you want to leave these files  empty  use  --no-prefs-templates
           option.  If  you prefer to keep the relevant settings globally, it will be convenient to add 'ALL no-
           prefs-templates' to your ~/darcs/defaults file.

       darcs add <file|directory> ...
           Generally the working tree contains both files that should be  version  controlled  (such  as  source
           code)  and  files  that Darcs should ignore (such as executables compiled from the source code).  The
           `darcs add` command is used to tell Darcs which files to version control.

           When an existing project is first imported into a Darcs repository, it is common to run `darcs add -r
           *` or `darcs record -l` to add all initial source files into darcs.

           Adding symbolic links (symlinks) is not supported.

           Darcs will ignore all files and folders that look "boring".  The  `--boring`  option  overrides  this
           behaviour.

           Darcs will not add a file if another file in the same folder has the same name, except for case.  The
           `--case-ok`  option  overrides  this behaviour.  Windows and OS X usually use filesystems that do not
           allow files a folder to have the same name except for case (for example, `ReadMe` and `README`).   If
           `--case-ok` is used, the repository might be unusable on those systems!

       darcs whatsnew [file|directory]...
           The  `darcs  whatsnew`  command lists unrecorded changes to the working tree. If you specify a set of
           files and directories, only unrecorded changes to those files and directories are listed.

           With the `--summary` option, the changes are condensed to  one  line  per  file,  with  mnemonics  to
           indicate  the  nature  and  extent  of the change. The `--look-for-adds` option causes candidates for
           `darcs add` to be included in the summary output.  WithSummary mnemonics are as follows:

             * `A f` and `A d/` respectively mean an added file or directory.
             * `R f` and `R d/` respectively mean a removed file or directory.
             * `M f -N +M rP` means a modified file, with `N` lines deleted, `M`
               lines added, and `P` lexical replacements.
             * `f -> g` means a moved file or directory.
             * `a f` and `a d/` respectively mean a new, but unadded, file or
               directory, when using `--look-for-adds`.
             * An exclamation mark (!) as in `R! foo.c`, means the change
               conflicts with a change in an earlier patch. The phrase `duplicated`
               means the change is identical to a change in an earlier patch.

           The `--machine-readable` option implies `--summary` while making it more parsable. Modified files are
           only shown as `M f`, and moves are shown in two lines: `F f` and `T g` (as in 'From f To g').

           By default, `darcs whatsnew` uses Darcs' internal format for changes. To see some context  (unchanged
           lines)  around  each  change,  use  the `--unified` option. (This option has no effect in interactive
           mode.) To view changes in conventional `diff` format, use the `darcs diff`  command;  but  note  that
           `darcs diff` cannot properly display changes when file renames are involved.

           This  command  exits  unsuccessfully  (returns  a  non-zero  exit  status) if there are no unrecorded
           changes.

       darcs record [file|directory]...
           The `darcs record` command is used to create a patch from changes in the working tree. If you specify
           a set of files and directories, changes to other files will be skipped.

           Every patch has a name, an optional description, an author and a date.

           Darcs will launch a text editor (see `darcs help environment`) after the  interactive  selection,  to
           let you enter the patch name (first line) and the patch description (subsequent lines).

           You  can  supply  the  patch  name  in  advance with the `-m` option, in which case no text editor is
           launched, unless you use `--edit-long-comment`.

           The patch description is an optional block of  free-form  text.  It  is  used  to  supply  additional
           information  that doesn't fit in the patch name. For example, it might include a rationale of WHY the
           change was necessary.

           A technical difference between patch name and patch description, is that matching with the flag  `-p`
           is only done on patch names.

           Finally,  the `--logfile` option allows you to supply a file that already contains the patch name and
           description. This is useful if a previous record failed  and  left  a  `_darcs/patch_description.txt`
           file.

           Each  patch  is  attributed  to  its  author,  usually  by  email  address (for example, `Fred Bloggs
           <fred@example.net>`). Darcs looks in several places for this author string:  the  `--author`  option,
           the  files  `_darcs/prefs/author` (in the repository) and `~/.darcs/author` (in your home directory),
           and the environment variables `$DARCS_EMAIL` and `$EMAIL`. If none of those exist, Darcs will  prompt
           you for an author string and write it to `~/.darcs/author`. Note that if you have more than one email
           address,  you can put them all in `~/.darcs/author`, one author per line. Darcs will still prompt you
           for an author, but it allows you to select from the list, or to type in an alternative.

           If you want to manually define any explicit dependencies for your patch, you can use the `--ask-deps`
           flag. Some dependencies may be automatically inferred from the patch's content and cannot be removed.
           A patch with specific dependencies can be empty.

           The patch date is generated automatically. It can only be spoofed by using the `--pipe` option.

           If you run record with the `--pipe` option, you will be prompted for the patch date, author, and  the
           long  comment. The long comment will extend until the end of file or stdin is reached. This interface
           is intended for scripting darcs, in particular for writing repository conversion scripts. The prompts
           are intended mostly as a useful guide (since scripts won't need them), to  help  you  understand  the
           input format. Here's an example of what the `--pipe` prompts look like:

               What is the date? Mon Nov 15 13:38:01 EST 2004
               Who is the author? David Roundy
               What is the log? One or more comment lines

           If  a test command has been defined with `darcs setpref`, attempting to record a patch will cause the
           test command to be run in a clean copy  of  the  working  tree  (that  is,  including  only  recorded
           changes). If the test fails, you will be offered to abort the record operation.

           The  `--set-scripts-executable`  option causes scripts to be made executable in the clean copy of the
           working tree, prior to running the  test.  See  `darcs  clone`  for  an  explanation  of  the  script
           heuristic.

           If  your  test command is tediously slow (e.g. `make all`) and you are recording several patches in a
           row, you may wish to use `--no-test` to skip all but the final test.

           To see some context (unchanged lines) around each change, use the `--unified` option.

       darcs clone <repository> [<directory>]
           Clone creates a copy of a repository. The optional second argument specifies a destination  directory
           for the new copy; if omitted, it is inferred from the source location.

           By  default  Darcs  will  copy  every  patch from the original repository. If you expect the original
           repository to remain accessible, you can use `--lazy` to avoid copying patches until they are  needed
           ('copy  on demand'). This is particularly useful when copying a remote repository with a long history
           that you don't care about.

           When cloning locally, Darcs automatically uses hard linking where possible. As well  as  saving  time
           and  space,  this  enables to move or delete the original repository without affecting the copy. Hard
           linking requires that the copy be on the same filesystem as the original  repository,  and  that  the
           filesystem  support  hard  linking. This includes NTFS, HFS+ and all general-purpose Unix filesystems
           (such as ext, UFS and ZFS). FAT does not support hard links.

           When cloning from a remote location, Darcs will look for and attempt to use packs created  by  `darcs
           optimize  http`  in  the  remote repository. Packs are single big files that can be downloaded faster
           than many little files.

           Darcs clone will not copy unrecorded changes to the source repository's working tree.

           You can copy a repository to a ssh url, in which case the new repository will always be complete.

           It is often desirable to make a copy of a repository that excludes some  patches.   For  example,  if
           releases  are  tagged then `darcs clone --tag .` would make a copy of the repository as at the latest
           release. An untagged repository state can still be identified unambiguously by  a  context  file,  as
           generated by `darcs log --context`. Given the name of such a file, the `--context` option will create
           a  repository  that  includes  only  the  patches  from that context. When a user reports a bug in an
           unreleased version of your project, the recommended way to find out exactly what  version  they  were
           running  is  to  have  them  include a context file in the bug report. You can also make a copy of an
           untagged state using the `--to-patch` or `--to-match` options,  which  exclude  patches  *after*  the
           first  matching patch. Because these options treat the set of patches as an ordered sequence, you may
           get different results after reordering with `darcs optimize reorder`.

           The `--set-scripts-executable` option causes scripts to be made executable in  the  working  tree.  A
           script is any file that starts with a shebang ("#!").

           The --inherit-default option is meant to support a work flow where you have different branches of the
           same  upstream  repository  and  want  all  your  branches  to  have  the  same  upstream repo as the
           defaultrepo. It is most useful when enabled  globally  by  adding  'ALL  --inherit-default'  to  your
           ~/darcs/defaults file.

           For  the clone command it means the following: If the source repository already has a defaultrepo set
           (either because you cloned it or because you explicitly used  the  --set-default  option),  and  both
           source  and  target  are locally valid paths on the same host, then the target repo will get the same
           defaultrepo as the source repo. Otherwise the target repo gets the source repo itself as defaultrepo,
           i.e. we fall back to the defalt behavior (--no-inherit-default).

           Initialize and clone commands create the preferences files in _darcs/prefs/ directory  of  the  newly
           created repository. With option --with-prefs-templates `boring` and `binaries` preferences files will
           be  filled  with  default templates.  If you want to leave these files empty use --no-prefs-templates
           option. If you prefer to keep the relevant settings globally, it will be convenient to add  'ALL  no-
           prefs-templates' to your ~/darcs/defaults file.

       darcs pull [repository]...
           Pull is used to bring patches made in another repository into the current repository (that is, either
           the  one  in  the  current directory, or the one specified with the `--repodir` option). Pull accepts
           arguments, which are URLs from which to pull, and when called without an argument, pull will use  the
           repository specified at `_darcs/prefs/defaultrepo`.

           The  default  (`--union`)  behavior  is  to  pull  any  patches  that  are  in  any  of the specified
           repositories. If you specify the `--intersection` flag, darcs will only pull those patches which  are
           present  in  all  source  repositories.  If you specify the `--complement` flag, darcs will only pull
           elements in the first repository that do not exist in any of the remaining repositories.

           If `--reorder` is supplied, the set of patches that exist only in the current repository  is  brought
           at the top of the current history. This will work even if there are no new patches to pull.

           The --inherit-default option is meant to support a work flow where you have different branches of the
           same  upstream  repository  and  want  all  your  branches  to  have  the  same  upstream repo as the
           defaultrepo. It is most useful when enabled  globally  by  adding  'ALL  --inherit-default'  to  your
           ~/darcs/defaults file.

           For  the  commands  push,  pull,  and  send it means the following: Changes the meaning of the --set-
           default option so that it sets the (local) defaultrepo to the defaultrepo of the remote repo, instead
           of the remote repo itself. This happens only if the remote repo does have a defaultrepo set and  both
           local  and  remote  repositories are locally valid paths on the same host, otherwise fall back to the
           default behavior (--no-inherit-default).

           See `darcs help apply` for detailed description of many options.

       darcs push [repository]
           Push is the opposite of pull. Push allows you to  copy  patches  from  the  current  repository  into
           another repository.

           The  --reorder-patches option works in the same way as it does for pull and apply: instead of placing
           the new patches (coming from your local repository) on top of  (i.e.  after)  the  existing  (remote)
           ones,  it  puts  the remote-only patches on top of the ones that you are pushing. This can be useful,
           for instance, if you have recorded a tag locally and  want  this  tag  to  be  clean  in  the  remote
           repository after pushing.

           If  you  give  the `--apply-as` flag, darcs will use `sudo` to apply the patches as a different user.
           This can be useful if you want to set up a system where several users can modify the same repository,
           but you don't want to allow them full write access.  This  isn't  secure  against  skilled  malicious
           attackers, but at least can protect your repository from clumsy, inept or lazy users.

           `darcs  push` will compress the patch data before sending it to a remote location via ssh. This works
           as long as the remote darcs is not older than version 2.5. If you get errors that indicate a  corrupt
           patch bundle, you should try again with the `--no-compress` option.

           The --inherit-default option is meant to support a work flow where you have different branches of the
           same  upstream  repository  and  want  all  your  branches  to  have  the  same  upstream repo as the
           defaultrepo. It is most useful when enabled  globally  by  adding  'ALL  --inherit-default'  to  your
           ~/darcs/defaults file.

           For  the  commands  push,  pull,  and  send it means the following: Changes the meaning of the --set-
           default option so that it sets the (local) defaultrepo to the defaultrepo of the remote repo, instead
           of the remote repo itself. This happens only if the remote repo does have a defaultrepo set and  both
           local  and  remote  repositories are locally valid paths on the same host, otherwise fall back to the
           default behavior (--no-inherit-default).

   Preparing patches before recording:
       darcs move <source> ... <destination>
           Darcs cannot reliably distinguish between a file being deleted and a new one added, and a file  being
           moved.   Therefore  Darcs always assumes the former, and provides the `darcs mv` command to let Darcs
           know when you want the latter.  This command will also move the file  in  the  working  tree  (unlike
           `darcs remove`), unless it has already been moved.

           Darcs  will  not rename a file if another file in the same folder has the same name, except for case.
           The `--case-ok` option overrides this behaviour.  Windows and OS X usually use  filesystems  that  do
           not  allow files a folder to have the same name except for case (for example, `ReadMe` and `README`).
           If `--case-ok` is used, the repository might be unusable on those systems!

       darcs remove <file|directory> ...
           The `darcs remove` command exists primarily for symmetry with `darcs  add`,  as  the  normal  way  to
           remove  a  file  from  version control is simply to delete it from the working tree.  This command is
           only useful in the unusual case where one wants to record a removal patch WITHOUT deleting  the  copy
           in the working tree (which can be re-added).

           Note that applying a removal patch to a repository (e.g. by pulling the patch) will ALWAYS affect the
           working tree of that repository.

       darcs replace <old> <new> <file> ...
           In  addition  to line-based patches, Darcs supports a limited form of lexical substitution. Files are
           treated as sequences of words, and each occurrence of the old word is replaced by the new word.  This
           is  intended to provide a clean way to rename a function or variable. Such renamings typically affect
           lines all through the source code, so a traditional line-based patch would be very likely to conflict
           with other branches, requiring manual merging.

           Files are tokenized according to one simple rule: words are strings of valid  token  characters,  and
           everything between them (punctuation and whitespace) is discarded. By default, valid token characters
           are  letters,  numbers  and the underscore (i.e. `[A-Za-z0-9_]`). However if the old and/or new token
           contains either a hyphen or period, BOTH hyphen and  period  are  treated  as  valid  (i.e.   `[A-Za-
           z0-9_.-]`).

           The set of valid characters can be customized using the `--token-chars` option.  The argument must be
           surrounded by square brackets. If a hyphen occurs between two characters in the set, it is treated as
           a  set  range.  For  example,  in  most  locales  `[A-Z]` denotes all uppercase letters. If the first
           character is a caret, valid tokens are taken to be the complement of the  remaining  characters.  For
           example,  `[^:0`  could  be  used  to  match  fields  in  the passwd(5), where records and fields are
           separated by newlines and colons respectively.

           If you choose to use `--token-chars`,  you  are  STRONGLY  encouraged  to  do  so  consistently.  The
           consequences  of  using multiple replace patches with different `--token-chars` arguments on the same
           file are not well tested nor well understood.

           By default Darcs will refuse to perform a replacement if the new token is already in use, because the
           replacements would be not be  distinguishable  from  the  existing  tokens.  This  behaviour  can  be
           overridden  by supplying the `--force` option, but an attempt to `darcs rollback` the resulting patch
           will affect these existing tokens.

           Limitations:

           The tokenizer treats files as byte strings, so it is not  possible  for  `--token-chars`  to  include
           multi-byte  characters,  such  as the non-ASCII parts of UTF-8. Similarly, trying to replace a "high-
           bit" character from a unibyte encoding will also result in replacement of the same byte in files with
           different encodings. For example, an acute a from ISO 8859-1  will  also  match  an  alpha  from  ISO
           8859-7.

           Due  to  limitations  in  the  patch  file  format,  `--token-chars` arguments cannot contain literal
           whitespace. For example, `[^ ]` cannot be used to declare all characters except the  space,  tab  and
           newline as valid within a word, because it contains a literal space.

           Unlike  POSIX  regex(7)  bracket  expressions,  character  classes  (such  as  `[[:alnum:]]`) are NOT
           supported by `--token-chars`, and will be silently treated as a simple set of characters.

   Querying the repository:
       darcs log [file|directory]...
           The `darcs log` command lists  patches  of  the  current  repository  or,  with  `--repo`,  a  remote
           repository. Without options or arguments, ALL patches will be listed.

           When given files or directories paths as arguments, only patches which affect those paths are listed.
           This includes patches that happened to files before they were moved or renamed.

           When  given  `--from-tag`  or  `--from-patch`,  only  patches  since  that  tag  or patch are listed.
           Similarly, the `--to-tag` and `--to-patch` options restrict the list to older patches.

           The `--last` and `--max-count` options both limit the number of patches listed.  The  former  applies
           BEFORE  other  filters,  whereas the latter applies AFTER other filters. For example `darcs log foo.c
           --max-count 3` will print the last three patches that affect  foo.c,  whereas  `darcs  log  --last  3
           foo.c` will, of the last three patches, print only those that affect foo.c.

           Four  output  formats  exist.  The  default is `--human-readable`. The slightly different `--machine-
           readable` format enables to see patch dependencies in  non-interactive  mode.  You  can  also  select
           `--context`, which is an internal format that can be re-read by Darcs (e.g. `darcs clone --context`).

           Finally,  there is `--xml-output`, which emits valid XML... unless a the patch metadata (author, name
           or description) contains a non-ASCII character and was recorded in a non-UTF8 locale.

       darcs annotate [file|directory]
           When `darcs annotate` is called on a file, it will find the patch that last  modified  each  line  in
           that file. This also works on directories.

           The `--machine-readable` option can be used to generate output for machine postprocessing.

       darcs diff [file|directory]...
           The  `darcs  diff`  command  compares  two  versions  of  the working tree of the current repository.
           Without options, the pristine (recorded) and unrecorded working trees are compared.  This  is  lower-
           level than the `darcs whatsnew` command, since it outputs a line-by-line diff, and it is also slower.
           As with `darcs whatsnew`, if you specify files or directories, changes to other files are not listed.
           The command always uses an external diff utility.

           With  the  `--patch`  option, the comparison will be made between working trees with and without that
           patch.  Patches *after* the selected patch are not present in either of the compared  working  trees.
           The  `--from-patch`  and `--to-patch` options allow the set of patches in the `old' and `new' working
           trees to be specified separately.

           The associated tag and match options are also understood, e.g. `darcs diff  --from-tag  1.0  --to-tag
           1.1`.   All  these  options  assume  an  ordering  of  the  patch  set, so results may be affected by
           operations such as `darcs optimize reorder`.

           diff(1) is always called with the arguments  `-rN`  and  by  default  also  with  `-u`  to  show  the
           differences  in  unified  format.  This  can  be  turned off by passing `--no-unified`. An additional
           argument can be passed using `--diff-opts`, such as `--diff-opts=-ud` or `--diff-opts=-wU9`.

           The `--diff-command` option can be used to specify an alternative utility. Arguments may be included,
           separated by whitespace.  The value is not interpreted by a shell,  so  shell  constructs  cannot  be
           used.   The  arguments  %1  and  %2 MUST be included, these are substituted for the two working trees
           being compared. For instance:

               darcs diff -p . --diff-command "meld %1 %2"

           If this option is used, `--diff-opts` is ignored.

       darcs show subcommand
           Display various information about a repository. See description of the subcommands for details.

       darcs show contents [file]...
           Show contents can be used to display an earlier version of some file(s).  If you give  show  contents
           no version arguments, it displays the recorded version of the file(s).

       darcs show dependencies
           This  command  creates  a  graph  of  the  dependencies between patches. The output format is the Dot
           Language,  see  https://www.graphviz.org/doc/info/lang.html.  The  resulting  graph  is  transitively
           reduced, in other words, it contains only the direct dependencies, not the indirect ones.

           By  default  all  patches in your repository are considered. You can limit this to a range of patches
           using patch matching options, see `darcs help patterns` and the options avaiable  for  this  command.
           For instance, to visualize the dependencies between all patches since the last tag, do:

               darcs show dependencies --from-tag=. | dot -Tpdf -o FILE.pdf

           This  command  can take a very(!) long time to compute its result, depending on the number of patches
           in the selected range. For N patches it needs to do on the order of N^3  commutations  in  the  worst
           case.

       darcs show files [file|directory]...
           The  `darcs  show files` command lists those files and directories in the working tree that are under
           version control.  This command is primarily for scripting purposes;  end  users  will  probably  want
           `darcs whatsnew --summary`.

           A  file  is  "pending"  if  it  has  been  added  but  not  recorded.  By default, pending files (and
           directories) are listed; the `--no-pending` option prevents this.

           By default `darcs show files` lists both files and  directories,  but  the  `--no-files`  and  `--no-
           directories` flags modify this behaviour.

           By  default  entries are one-per-line (i.e. newline separated).  This can cause problems if the files
           themselves contain newlines or other control characters.  To get around  this,  the  `--null`  option
           uses  the  null  character  instead.   The  script  interpreting  output  from  this command needs to
           understand this idiom; `xargs -0` is such a command.

           For example, to list version-controlled files by size:

               darcs show files -0 | xargs -0 ls -ldS

       darcs show index
           The `darcs show index` command lists all version-controlled files and directories  along  with  their
           hashes  as  stored  in  `_darcs/index`.  For files, the fields correspond to file size, sha256 of the
           current file content and the filename.

       darcs show pristine
           The `darcs show pristine` command lists all version-controlled files and directories along  with  the
           hashes  of  their  pristine  copies.  For  files,  the  fields correspond to file size, sha256 of the
           pristine file content and the filename.

       darcs show repo
           The `darcs show repo` command displays statistics about the current repository, allowing  third-party
           scripts  to  access  this information without inspecting `_darcs` directly (and without breaking when
           the `_darcs` format changes).

           The 'Weak Hash' identifies the set of patches of a repository independently of ordering.  It  can  be
           used to easily compare two repositories of a same project. It is not cryptographically secure.

           By  default,  output  includes  statistics  that  require walking through the patches recorded in the
           repository, namely the 'Weak Hash' and the count of patches.  If this data isn't needed,  use  `--no-
           enum-patches` to accelerate this command from O(n) to O(1).

           By  default, output is in a human-readable format.  The `--xml-output` option can be used to generate
           output for machine postprocessing.

       darcs show authors
           The `darcs show authors` command lists the authors of the current repository, sorted by the number of
           patches contributed.  With the `--verbose` option, this command simply lists the author of each patch
           (without aggregation or sorting).

           An author's name or email address may change over time.  To tell Darcs when multiple  author  strings
           refer  to  the  same  individual,  create an `.authorspellings` file in the root of the working tree.
           Each line in this file begins with an author's canonical name and address, and may be followed  by  a
           comma  separated  list  of  extended  regular  expressions.  Blank lines and lines beginning with two
           hyphens are ignored.  The format of `.authorspelling` can be described by this pattern:

               name <address> [, regexp ]*

           There are some pitfalls concerning special characters: Whitespaces are stripped, if you need space in
           regexp use [ ].  Because comma serves as a separator you have to escape it if you want it in  regexp.
           Note that `.authorspelling` use extended regular expressions so +, ? and so on are metacharacters and
           you need to escape them to be interpreted literally.

           Any  patch  with an author string that matches the canonical address or any of the associated regexps
           is considered to be the work of that author.  All matching is case-insensitive and  partial  (it  can
           match a substring). Use ^,$ to match the whole string in regexps

           Currently  this  canonicalization step is done only in `darcs show authors`.  Other commands, such as
           `darcs log` use author strings verbatim.

           An example `.authorspelling` file is:

               -- This is a comment.
               Fred Nurk <fred@example.com>
               John Snagge <snagge@bbc.co.uk>, John, snagge@, js@(si|mit).edu
               Chuck Jones Jr. <chuck@pobox.com>, cj+user@example.com

       darcs show tags
           The tags command writes a list of all tags in the repository to standard output.

           Tab characters (ASCII character 9) in tag names are changed to  spaces  for  better  interoperability
           with shell tools. A warning is printed if this happens.

       darcs show patch-index
           When given the `--verbose` flag, the command dumps the complete content of the patch index and checks
           its integrity.

       darcs test [[initialization] command]
           Run  test  on  the current recorded state of the repository.  Given no arguments, it uses the default
           repository test (see `darcs setpref`).  Given one argument, it treats it as a  test  command.   Given
           two  arguments,  the  first is an initialization command and the second is the test (meaning the exit
           code of the first command is not taken into account to determine success of the test).  If given  the
           `--linear`  or  `--bisect`  flags,  it  tries to find the most recent version in the repository which
           passes a test.

           `--linear` does linear search starting from head, and moving away from head. This  strategy  is  best
           when the test runs very quickly or the patch you're seeking is near the head.

           `--bisect`  does  binary  search.   This strategy is best when the test runs very slowly or the patch
           you're seeking is likely to be in the repository's distant past.

           `--backoff` starts searching from head, skipping further and further into the  past  until  the  test
           succeeds.   It  then  does a binary search on a subset of those skipped patches.  This strategy works
           well unless the patch you're seeking is in the repository's distant past.

           Under the assumption that failure is monotonous, `--linear` and `--bisect` produce the  same  result.
           (Monotonous  means  that when moving away from head, the test result changes only once from "fail" to
           "ok".)  If failure is not monotonous, any one of the patches that break the test is found at random.

           If the test command returns an exit code of 125, the repository state is treated  as  "untestable"  -
           for  example  you  might  get  it  to do this for a build break or other result that isn't the actual
           problem you want to track down. This can lead to multiple patches being reported as the source of the
           failure.

           For example, if patch 1 introduces a build break, patch 2 breaks a test in an unrelated  bit  of  the
           code,  and  patch  3 fixes the build break, then patches 1,2 and 3 would be identified as causing the
           failure.

           The `--shrink-failures` option, on by default, adds a post-processing step to reorder patches to  try
           to  narrow  down  a  failure  more precisely. In the example above, it's likely that patch 2 could be
           moved before patch 1 or after patch 3, allowing it to be identified as the sole cause of the failure.

           This shrinking can be disabled with `--no-shrink-failures`.

   Undoing and correcting:
       darcs revert [file|directory]...
           The `darcs revert` command discards unrecorded changes in the working tree. As with  `darcs  record`,
           you  will  be  asked  which  hunks  (changes) to revert. The `--all` switch can be used to avoid such
           prompting. If files or directories are specified, other parts of the working tree are not reverted.

           In you accidentally reverted something you wanted to keep (for example, typing `darcs rev -a` instead
           of `darcs rec -a`), you can immediately run `darcs unrevert` to restore it. This is  only  guaranteed
           to work if the repository has not changed since `darcs revert` ran.

       darcs unrevert
           Unrevert  is  a  rescue  command  in case you accidentally reverted something you wanted to keep (for
           example, typing `darcs rev -a` instead of `darcs rec -a`).

           This command may fail if the repository has changed since the revert took place.  Darcs will ask  for
           confirmation before executing an interactive command that will DEFINITELY prevent unreversion.

       darcs amend [file|directory]...
           Amend updates a "draft" patch with additions or improvements, resulting in a single "finished" patch.

           By  default `amend` proposes you to record additional changes. If instead you want to remove changes,
           use the flag `--unrecord`.

           When recording a draft patch, it is a good idea to start the name with `DRAFT:`.  When  done,  remove
           it  with  `darcs amend --edit-long-comment`. Alternatively, to change the patch name without starting
           an editor, use the `--name`/`-m` flag:

               darcs amend --match 'name "DRAFT: foo"' --name 'foo2'

           Like `darcs record`, if you call amend with files as arguments, you will only be asked about  changes
           to those files. So to amend a patch to foo.c with improvements in bar.c, you would run:

               darcs amend --match 'touch foo.c' bar.c

           Note that this command edits the history of your repo. It is primarily intended to be used on patches
           that  you authored yourself and did not yet publish. Using it for patches that are already published,
           or even ones you did not author yourself, may cause confusion and can  disrupt  your  own  and  other
           people's  work-flow.  This  depends  a  lot on how your project is organized, though, so there may be
           valid exceptions to this rule.

           Using the `--not-in-remote` option is a good way to  guard  against  accidentally  editing  published
           patches. Without arguments, this deselects any patches that are also present in the `defaultrepo`. If
           you work in a clone of some publically hosted repository, then your `defaultrepo` will be that public
           repo.  You  can also give the option an argument which is a path or URL of some other repository; you
           can use the option multiple times with different repositories, which has the effect of  treating  all
           of  them  as  "upstream", that is, it prevents you from selecting a patch that is contained in any of
           these repos.

           You can also guard only against editing another developer's patch by using an  appropriate  `--match`
           option  with the `author` keyword. For instance, you could add something like `<cmd> match Your Name`
           to your `~/.darcs/defaults`.

       darcs rebase subcommand
           The `darcs rebase' command is used to edit a collection of darcs patches.

           The basic idea is that you can suspend patches from the end of a repository.  These  patches  are  no
           longer part of the history and have no effect on the working tree. Suspended patches are invisible to
           commands that access the repository from the outside, such as push, pull, clone, send, etc.

           The sequence of suspended patches can be manipulated in ways that are not allowed for normal patches.
           For  instance, `darcs rebase obliterate` allows you to remove a patch in this sequence, even if other
           suspended patches depend on it. These other patches will as a result become conflicted.

           You can also operate on the normal patches in the usual way. If you add or remove normal patches, the
           suspended patches will be automatically adapted to  still  apply  to  the  pristine  state,  possibly
           becoming conflicted in the course.

           Note  that as soon as a patch gets suspended, it will irrevocably loose its identity. This means that
           suspending a patch is subject to the usual warnings about editing the history of your project.

           The opposite of suspending a patch is to unsuspend it. This turns it back into a normal patch. If the
           patch is conflicted as a result of previous operations on either the normal patches or the  suspended
           patches,  unsuspending  will  create appropriate conflict markup. Note, however, that the unsuspended
           patch itself WILL NOT BE CONFLICTED itself. This means that  there  is  no  way  to  re-generate  the
           conflict markup. Once you removed it, by editing files or using `darcs revert`, any information about
           the conflict is lost.

           As  long  as  you  have  suspended  patches, darcs will display a short message after each command to
           remind you that your patch editing operation is still in progress.

       darcs rebase pull [repository]...
           Copy and apply patches from another repository, suspending any local patches that conflict.

       darcs rebase apply <patchfile>
           Apply a patch bundle, suspending any local patches that conflict.

       darcs rebase suspend
           Select patches to move into a suspended state at the end of the repo.

           Note that this command edits the history of your repo. It is primarily intended to be used on patches
           that you authored yourself and did not yet publish. Using it for patches that are already  published,
           or  even  ones  you  did  not author yourself, may cause confusion and can disrupt your own and other
           people's work-flow. This depends a lot on how your project is organized,  though,  so  there  may  be
           valid exceptions to this rule.

           Using  the  `--not-in-remote`  option  is  a good way to guard against accidentally editing published
           patches. Without arguments, this deselects any patches that are also present in the `defaultrepo`. If
           you work in a clone of some publically hosted repository, then your `defaultrepo` will be that public
           repo. You can also give the option an argument which is a path or URL of some other  repository;  you
           can  use  the option multiple times with different repositories, which has the effect of treating all
           of them as "upstream", that is, it prevents you from selecting a patch that is contained  in  any  of
           these repos.

           You  can  also guard only against editing another developer's patch by using an appropriate `--match`
           option with the `author` keyword. For instance, you could add something like `<cmd> match Your  Name`
           to your `~/.darcs/defaults`.

       darcs rebase unsuspend
           Select suspended patches to restore to the end of the repo.

       darcs rebase edit
           Edit suspended patches.

       darcs rebase obliterate
           Obliterate a patch that is currently suspended.

       darcs rebase log
           List the currently suspended changes.

       darcs rebase upgrade
           Upgrade a repo with an old-style rebase in progress.

           Doing  this means you won't be able to use darcs version < 2.15 with this repository until the rebase
           is finished.

       darcs rollback [file|directory]...
           Rollback is used to undo the effects of some changes from patches in  the  repository.  The  selected
           changes  are undone in your working tree, but the repository is left unchanged. First you are offered
           a choice of which patches to undo, then which changes within the patches to undo.

           Before doing `rollback`, you may want to temporarily undo the changes of your working tree (if  there
           are)  and  save  them  for  later use.  To do so, you can run `revert`, then run `rollback`, record a
           patch, and run `unrevert` to restore the saved changes into your working tree.

       darcs unrecord
           Unrecord does the opposite of record: it deletes patches from the  repository  without  changing  the
           working  tree.  The  changes are now again visible with `darcs whatsnew` and you can record or revert
           them as you please.

           Note that this command edits the history of your repo. It is primarily intended to be used on patches
           that you authored yourself and did not yet publish. Using it for patches that are already  published,
           or  even  ones  you  did  not author yourself, may cause confusion and can disrupt your own and other
           people's work-flow. This depends a lot on how your project is organized,  though,  so  there  may  be
           valid exceptions to this rule.

           Using  the  `--not-in-remote`  option  is  a good way to guard against accidentally editing published
           patches. Without arguments, this deselects any patches that are also present in the `defaultrepo`. If
           you work in a clone of some publically hosted repository, then your `defaultrepo` will be that public
           repo. You can also give the option an argument which is a path or URL of some other  repository;  you
           can  use  the option multiple times with different repositories, which has the effect of treating all
           of them as "upstream", that is, it prevents you from selecting a patch that is contained  in  any  of
           these repos.

           You  can  also guard only against editing another developer's patch by using an appropriate `--match`
           option with the `author` keyword. For instance, you could add something like `<cmd> match Your  Name`
           to your `~/.darcs/defaults`.

       darcs obliterate
           Obliterate completely removes recorded patches from your local repository. The changes will be undone
           in  your working tree and the patches will not be shown in your changes list anymore. Beware that you
           can lose precious code by obliterating!

           One way to save obliterated patches is to use the -O flag. A patch bundle will  be  created  locally,
           that  you  will  be able to apply later to your repository with `darcs apply`. See `darcs send` for a
           more detailed description.

           Note that this command edits the history of your repo. It is primarily intended to be used on patches
           that you authored yourself and did not yet publish. Using it for patches that are already  published,
           or  even  ones  you  did  not author yourself, may cause confusion and can disrupt your own and other
           people's work-flow. This depends a lot on how your project is organized,  though,  so  there  may  be
           valid exceptions to this rule.

           Using  the  `--not-in-remote`  option  is  a good way to guard against accidentally editing published
           patches. Without arguments, this deselects any patches that are also present in the `defaultrepo`. If
           you work in a clone of some publically hosted repository, then your `defaultrepo` will be that public
           repo. You can also give the option an argument which is a path or URL of some other  repository;  you
           can  use  the option multiple times with different repositories, which has the effect of treating all
           of them as "upstream", that is, it prevents you from selecting a patch that is contained  in  any  of
           these repos.

           You  can  also guard only against editing another developer's patch by using an appropriate `--match`
           option with the `author` keyword. For instance, you could add something like `<cmd> match Your  Name`
           to your `~/.darcs/defaults`.

       darcs clean [file|directory]...
           Remove unrecorded changes from the working tree.

           This  is  an alias for `darcs revert -l/--look-for-adds` which means it works also on files that have
           not been added. You can additionally pass `--boring`  to  get  rid  of  *every*  unrecorded  file  or
           directory.

           See description of `darcs revert` for more details.

   Direct modification of the repository:
       darcs tag [tagname]
           The  `darcs  tag`  command  names  the current repository state, so that it can easily be referred to
           later. It does so by recording a special kind of patch that makes no  changes  and  which  explicitly
           depends on all patches currently existing in the repository (except for those which are depended upon
           by  other  tags  already  in the repository). In the common case of a sequential series of tags, this
           means that the tag depends on all patches since the last tag, plus that tag itself.

           Every *important* state should be tagged; in particular it  is  good  practice  to  tag  each  stable
           release   with   a   number   or   codename.   Advice   on   release   numbering   can  be  found  at
           <http://producingoss.com/en/development-cycle.html>.

           To reproduce the state of a repository `R` as at tag `t`, use the command `darcs clone  --tag  t  R`.
           Note  however that tags are matched as regular expressions, like with `--patch`. To make sure you get
           the right tag it may be better to use `darcs clone --tag '^t$'`. The command `darcs show tags`  lists
           all tags in the current repository.

           Tagging  also provides significant performance benefits: when Darcs reaches a tag that depends on all
           preceding patches, it can often stop processing. A tag in such a  position  is  called  "clean".  For
           instance,  operations  like  push  and  pull  need to examine only patches that come after the latest
           shared clean tag.

           Like normal patches, a tag has a name, an author, a timestamp and an optional long  description,  but
           it  does  not  change  the  working tree. A tag can have any name, but it is generally best to pick a
           naming scheme and stick to it.

           By default a tag names the entire repository state at the time the tag is created. If the  --ask-deps
           option is used, the patches to include as part of the tag can be explicitly selected.

           The `darcs tag` command accepts the `--pipe` option, which behaves as described in `darcs record`.

       darcs setpref <pref> <value>
           When  working on project with multiple repositories and contributors, it is sometimes desirable for a
           preference to be set consistently project-wide.  This is achieved by treating a preference  set  with
           `darcs  setpref`  as an unrecorded change, which can then be recorded and then treated like any other
           patch.

           Valid preferences are:

           * test -- a shell command that runs regression tests * predist --  a  shell  command  to  run  before
           `darcs  dist' * boringfile -- the path to a version-controlled boring file * binariesfile -- the path
           to a version-controlled binaries file

           For example, a project using GNU autotools, with a `make test` target to  perform  regression  tests,
           might enable Darcs' integrated regression testing with the following command:

               darcs setpref test 'autoconf && ./configure && make && make test'

           Note  that  merging  is  not currently implemented for preferences: if two patches attempt to set the
           same preference, the last patch applied to the repository  will  always  take  precedence.   This  is
           considered a low-priority bug, because preferences are seldom set.

   Exchanging patches by e-mail:
       darcs send [repository]
           Send  is used to prepare a bundle of patches that can be applied to a target repository. Send accepts
           the URL of the repository as an argument. When called without an argument, send  will  use  the  most
           recent  repository that was either pushed to, pulled from or sent to. By default, the patch bundle is
           saved to a file, although you may directly send it by mail.

           The `--output`, `--output-auto-name`, and `--to` flags determine  what  darcs  does  with  the  patch
           bundle  after  creating  it. If you provide an `--output` argument, the patch bundle is saved to that
           file. If you specify `--output-auto-name`, the patch bundle is saved to a file with an  automatically
           generated  name.  If  you  give  one or more `--to` arguments, the bundle of patches is sent to those
           locations.  The locations may either be email addresses or urls that the patch should be submitted to
           via HTTP.

           If you provide the `--mail` flag, darcs will look at the contents of the `_darcs/prefs/email` file in
           the target repository (if it exists), and send the patch by email to that address. In this case,  you
           may  use the `--cc` option to specify additional recipients without overriding the default repository
           email address.

           If `_darcs/prefs/post` exists in the target repository, darcs will upload to  the  URL  contained  in
           that file, which may either be a `mailto:` URL, or an `http://` URL. In the latter case, the patch is
           posted to that URL.

           If  there  is  no  email  address  associated with the repository, darcs will prompt you for an email
           address.

           Use the `--subject` flag to set the subject of the e-mail to be sent. If you don't provide a  subject
           on the command line, darcs will make one up based on names of the patches in the patch bundle.

           Use  the `--in-reply-to` flag to set the In-Reply-To and References headers of the e-mail to be sent.
           By default no additional headers are included so e-mail will not be treated as reply by mail readers.

           If you want to include a description or explanation along with the bundle of  patches,  you  need  to
           specify the `--edit-description` flag, which will cause darcs to open up an editor with which you can
           compose a message to go along with your patches.

           If  you want to use a command different from the default one for sending email, you need to specify a
           command line with  the  `--sendmail-command`  option.  The  command  line  can  contain  some  format
           specifiers  which are replaced by the actual values. Accepted format specifiers are `%s` for subject,
           `%t` for to, `%c` for cc, `%b` for the body of the mail, `%f` for from, `%a` for the patch bundle and
           the same specifiers in uppercase for the URL-encoded values. Additionally you can add `%<` to the end
           of the command line if the command expects the complete email message on  standard  input.  E.g.  the
           command lines for evolution and msmtp look like this:

               evolution "mailto:%T?subject=%S&attach=%A&cc=%C&body=%B"
               msmtp -t %<

           Do  not  confuse  the  `--author` options with the return address that `darcs send` will set for your
           patch bundle.

           For example, if you have two email addresses A and B:

             * If you use `--author A` but your machine is configured to send
               mail from address B by default, then the return address on your
               message will be B.
             * If you use `--from A` and your mail client supports setting the
               From: address arbitrarily (some non-Unix-like mail clients,
               especially, may not support this), then the return address will
               be A; if it does not support this, then the return address will
               be B.
             * If you supply neither `--from` nor `--author` then the return
               address will be B.

           In addition, unless you specify the sendmail command with  `--sendmail-command`,  darcs  sends  email
           using  the  default  email  command  on  your  computer.  This  default  command is determined by the
           `configure` script. Thus, on some non-Unix-like OSes, `--from` is likely to not work at all.

           The --inherit-default option is meant to support a work flow where you have different branches of the
           same upstream repository and  want  all  your  branches  to  have  the  same  upstream  repo  as  the
           defaultrepo.  It  is  most  useful  when  enabled  globally by adding 'ALL --inherit-default' to your
           ~/darcs/defaults file.

           For the commands push, pull, and send it means the following:  Changes  the  meaning  of  the  --set-
           default option so that it sets the (local) defaultrepo to the defaultrepo of the remote repo, instead
           of  the remote repo itself. This happens only if the remote repo does have a defaultrepo set and both
           local and remote repositories are locally valid paths on the same host, otherwise fall  back  to  the
           default behavior (--no-inherit-default).

       darcs apply <patchfile>
           The `darcs apply` command takes a patch bundle and attempts to insert it into the current repository.
           In  addition  to  invoking  it  directly on bundles created by `darcs send`, it is used internally by
           `darcs push` on the remote end of an SSH connection.

           If no file is supplied, the bundle is read from standard input.

           If given an email instead of a patch bundle, Darcs will look for the bundle as a MIME  attachment  to
           that  email.  Currently  this  will  fail  if  the MIME boundary is rewritten, such as in Courier and
           Mail.app.

           If gpg(1) is installed, you can use `--verify pubring.gpg` to reject bundles that aren't signed by  a
           key in `pubring.gpg`.

           If  `--test`  is supplied and a test is defined (see `darcs setpref`), the bundle will be rejected if
           the test fails after applying it.

           Unlike most Darcs commands, `darcs apply` defaults to `--all`. Use the `--interactive` option to pick
           which patches to apply from a bundle.

           A patch bundle may introduce unresolved conflicts with existing patches or with the working tree.  By
           default, Darcs will refuse to apply conflicting patches (`--no-allow-conflicts`).

           The  `--mark-conflicts`  option  instructs Darcs to allow conflicts and try to add conflict markup in
           your working tree. Note that this may (partly) fail, because some conflicts cannot be marked, such as
           e.g. conflicts between two adds of the same file. In this case Darcs will warn you  and  display  the
           conflicting  changes  instead. When Darcs detects conflicts with unrecorded changes, it will give you
           an extra warning and prompts you to confirm that you want to continue. This is because your  original
           unrecorded changes cannot be automatically restored by Darcs.

           Note  that conflict markup is something Darcs adds to your working tree files.  Nevertheless, you can
           always re-construct it using `darcs mark-conflicts`.

           The `--external-merge` option lets you resolve conflicts using an external merge tool. In the option,
           `%a` is replaced with the common ancestor (merge base), `%1` with the first version,  `%2`  with  the
           second version, and `%o` with the path where your resolved content should go. For example, to use the
           xxdiff visual merge tool you'd specify: `--external-merge='xxdiff -m -O -M %o %1 %a %2'`

           The  `--allow-conflicts`  option  allows  conflicts but does not add conflict markup.  This is useful
           when you want to treat a repository as just a bunch of patches, such as using `darcs pull --union` to
           download all of your co-workers' patches before going offline. Again, conflict markup can be added at
           any time later on using `darcs mark-conflicts`.

           For more information on conflicts in Darcs and how to resolve them, see  the  help  on  `darcs  mark-
           conflicts`.

   Other commands:
       darcs optimize subcommand
           The  `darcs  optimize`  command  modifies  internal  data  structures of the current repository in an
           attempt to reduce its resource requirements.

           For further details see the descriptions of the subcommands.

       darcs optimize clean
           Darcs normally does not delete hashed files that are no longer referenced by the  current  repository
           state. This command can be use to get rid of these files to save some disk space.

       darcs optimize http
           Using  this  option creates 'repository packs' that can dramatically speed up performance when a user
           does a `darcs clone` of the repository over HTTP. To make use of packs, the clients must have a darcs
           of at least version 2.10.

       darcs optimize reorder
           This command moves recent patches (those not included in the latest tag) to the "front", reducing the
           amount that a typical remote command needs to download. It should also reduce the CPU time needed for
           some operations. This is the behavior with --shallow which is the default.

           With the --deep option it tries to optimize all tags  in  the  whole  repository.   This  breaks  the
           history  of  patches  into  smaller  bunches,  which can further improve efficiency, but requires all
           patches to be present. It is therefore less suitable for lazy clones.

       darcs optimize enable-patch-index
           Build the patch index, an internal data structure that accelerates commands that need  to  know  what
           patches touch a given file. Such as annotate and log.

       darcs optimize disable-patch-index
           Delete and stop maintaining the patch index from the repository.

       darcs optimize compress
           Patches,  inventories,  and pristine files are compressed with zlib (RFC 1951) to reduce storage (and
           download) size. Older darcs versions allowed to store them uncompressed, and darcs is still  able  to
           read those files if they are not compressed.

           The `darcs optimize uncompress` and `darcs optimize compress` commands can be used to ensure existing
           patches in the current repository are respectively uncompressed or compressed.

       darcs optimize uncompress
           Patches,  inventories,  and pristine files are compressed with zlib (RFC 1951) to reduce storage (and
           download) size. Older darcs versions allowed to store them uncompressed, and darcs is still  able  to
           read those files if they are not compressed.

           The `darcs optimize uncompress` and `darcs optimize compress` commands can be used to ensure existing
           patches in the current repository are respectively uncompressed or compressed.

       darcs optimize relink
           The `darcs optimize relink` command hard-links patches that the current repository has in common with
           its  peers.  Peers  are  those  repositories  listed  in  `_darcs/prefs/sources`, or defined with the
           `--sibling` option (which can be used multiple times).

           Darcs uses hard-links automatically, so this command is rarely needed. It is most useful if you  used
           `cp  -r` instead of `darcs clone` to copy a repository, or if you pulled the same patch from a remote
           repository into multiple local repositories.

       darcs optimize upgrade
           Convert old-fashioned repositories to the current default hashed format.

       darcs optimize cache
           This command deletes obsolete files within the global cache.

           It also automatically migrates the global cache to the (default) bucketed format.

       darcs dist
           `darcs dist` creates a compressed archive in the repository's root directory, containing the recorded
           state of the working tree (unrecorded changes and the `_darcs` directory are excluded).  The  command
           accepts matchers to create an archive of some past repository state, for instance `--tag`.

           By  default,  the  archive  (and the top-level directory within the archive) has the same name as the
           repository, but this can be overridden with the `--dist-name` option.

           If a predist command is set (see `darcs setpref`), that command will be run  on  the  recorded  state
           prior to archiving.  For example, autotools projects would set it to `autoconf && automake`.

           If `--zip` is used, matchers and the predist command are ignored.

       darcs mark-conflicts [file|directory]...
           Darcs  requires  human  guidance  to reconcile independent changes to the same part of a file. When a
           conflict first occurs, darcs will add the initial state and all conflicting choices  to  the  working
           tree, delimited by the markers `v v v`, `=====`, `* * *` and `^ ^ ^`, as follows:

               v v v v v v v
               initial state
               =============
               first choice
               *************
               ...more choices...
               *************
               last choice
               ^ ^ ^ ^ ^ ^ ^

           If  you  happened  to  revert  or manually delete this conflict markup without actually resolving the
           conflict, `darcs mark-conflicts` can be used to re-create it; and similarly if you have  used  `darcs
           apply` or `darcs pull` with `--allow-conflicts`, where conflicts aren't marked initially.

           In  Darcs,  a conflict counts as resolved when all of the changes involved in the conflict (which can
           be more than two) are depended on by one or more later patches. If you  record  a  resolution  for  a
           particular  conflict,  `darcs mark-conflicts` will no longer mark it, indicating that it is resolved.
           If you have unrecorded changes, these count as (potential) conflict resolutions, too, just as if  you
           had already recorded them.

           This  principle  extends  to  explicit  "semantic"  dependencies.  For instance, recording a tag will
           automatically mark all conflicts as resolved.

           In the above schematic example the "initial state" corresponds to the recorded state of the  file  in
           your  repository.  That  is  to  say,  the  recorded  effect  of  a  conflict is to apply none of the
           conflicting changes. This is usually not a state you would regard as a successful resolution  of  the
           conflict;  but  there are exceptional situations where this may be exactly what you want. In order to
           tell Darcs that you want this conflict to be regarded as resolved, use `darcs record  --ask-deps`  to
           record a patch that explicitly depends on all patches involved in the conflict.

       darcs repair
           The  `darcs  repair`  command  attempts  to  fix  corruption  in the current repository.  It works by
           successively applying all patches in the repository to an empty tree, each  time  checking  that  the
           patch  can  be cleanly applied to the current pristine tree. If we detect a problem, we try to repair
           the patch. Finally we compare the existing pristine with the newly  reconstructed  one  and  if  they
           differ,  replace  the existing one.  Any problem encountered is reported.  The flag `--dry-run` makes
           this operation read-only and causes it to exit unsuccessfully (with a non-zero exit status)  in  case
           any problems are enountered.

       darcs convert subcommand
           Convert repositories between various formats.

           See description of the subcommands for details.

       darcs convert darcs-2 <source> [<destination>]
           This  command  converts  a repository that uses the old patch semantics `darcs-1` to a new repository
           with current `darcs-2` semantics.

           WARNING: the repository produced by this command is not understood by Darcs 1.x, and  patches  cannot
           be  exchanged  between  repositories  in  darcs-1  and darcs-2 formats. Also, you should not exchange
           patches between repositories created by different invocations of this command.  This means: -  Before
           doing this conversion, you should merge into this repo any patches
             existing elsewhere that you might want to merge in future, so that they
             will  remain  mergeable.  (You can always remove them again after converting).  - After converting,
           you should tell everyone with a fork of this repo
             to discard it and make a new fork of the converted repo.

           Initialize and clone commands create the preferences files in _darcs/prefs/ directory  of  the  newly
           created repository. With option --with-prefs-templates `boring` and `binaries` preferences files will
           be  filled  with  default templates.  If you want to leave these files empty use --no-prefs-templates
           option. If you prefer to keep the relevant settings globally, it will be convenient to add  'ALL  no-
           prefs-templates' to your ~/darcs/defaults file.

       darcs convert export
           This command enables you to export darcs repositories into git.

           For a one-time export you can use the recipe:

               $ cd repo
               $ git init ../mirror
               $ darcs convert export | (cd ../mirror && git fast-import)

           For incremental export using marksfiles:

               $ cd repo
               $ git init ../mirror
               $ touch ../mirror/git.marks
               $ darcs convert export --read-marks darcs.marks --write-marks darcs.marks
                  | (cd ../mirror && git fast-import --import-marks=git.marks --export-marks=git.marks)

           In the case of incremental export, be careful to never amend, delete or reorder patches in the source
           darcs repository.

           Also, be aware that exporting a darcs repo to git will not be exactly faithful in terms of history if
           the darcs repository contains conflicts.

           Limitations:

             * Empty directories are not supported by the fast-export protocol.
             * Unicode filenames are currently not correctly handled.
               See http://bugs.darcs.net/issue2359 .

       darcs convert import [<directory>]
           This command imports git repositories into new darcs repositories.  Further options are accepted (see
           `darcs help init`).

           To convert a git repo to a new darcs one you may run:

               $ (cd gitrepo && git fast-export --all -M) | darcs convert import darcsmirror

           WARNING: git repositories with branches will produce weird results,
                    use at your own risks.

           Incremental import with marksfiles is currently not supported.

           Initialize  and  clone  commands create the preferences files in _darcs/prefs/ directory of the newly
           created repository. With option --with-prefs-templates `boring` and `binaries` preferences files will
           be filled with default templates.  If you want to leave these files  empty  use  --no-prefs-templates
           option.  If  you prefer to keep the relevant settings globally, it will be convenient to add 'ALL no-
           prefs-templates' to your ~/darcs/defaults file.

       darcs fetch [repository]...
           Fetch is similar to `pull` except that it does not apply  any  patches  to  the  current  repository.
           Instead, it generates a patch bundle that you can apply later with `apply`.

           Fetch's  behaviour  is  essentially  similar  to pull's, so please consult the help of `pull` to know
           more.

ENVIRONMENT

   HOME and APPDATA
       Per-user preferences are set in $HOME/.darcs (on Unix) or %APPDATA%/darcs (on Windows).  This is also the
       default location of the cache.

   DARCS_EDITOR, VISUAL, and EDITOR
       To edit a patch description of email comment, Darcs will  invoke  an  external  editor.   Your  preferred
       editor  can  be  set  as  any of the environment variables $DARCS_EDITOR, $VISUAL or $EDITOR.  If none of
       these are set, nano is used.  If nano crashes or is not found in your PATH, vi, emacs, emacs -nw and  (on
       Windows) edit are each tried in turn.

   DARCS_PAGER and PAGER
       Darcs will invoke a pager if the output of some command is longer than 20 lines. Darcs will use the pager
       specified  by  $DARCS_PAGER  or  $PAGER.  If neither are set, `less` will be used.  Set $DARCS_PAGER - or
       $PAGER if the former is not set - to the empty string in order not to use a pager.

   DARCS_DONT_COLOR, DARCS_ALWAYS_COLOR, and DARCS_ALTERNATIVE_COLOR
       If the terminal understands ANSI color escape  sequences,  darcs  will  highlight  certain  keywords  and
       delimiters  when  printing  patches,  and  also  print  hunk lines in color according to whether they are
       removed or added. This can be turned off by setting the environment variable DARCS_DONT_COLOR to  1.   If
       you  use  a  pager  that happens to understand ANSI colors, like `less -R`, darcs can be forced always to
       highlight the output  by  setting  DARCS_ALWAYS_COLOR  to  1.  If  you  can't  see  colors  you  can  set
       DARCS_ALTERNATIVE_COLOR to 1, and darcs will use ANSI codes for bold and reverse video instead of colors.

   DARCS_DONT_ESCAPE_TRAILING_SPACES and DARCS_DONT_ESCAPE_TRAILING_CR
       By  default  darcs  will escape (by highlighting if possible) any kind of spaces at the end of lines when
       showing  patch   contents.    If   you   don't   want   this   you   can   turn   it   off   by   setting
       DARCS_DONT_ESCAPE_TRAILING_SPACES   to   1.   A   special   case   exists   for  only  carriage  returns:
       DARCS_DONT_ESCAPE_TRAILING_CR

   DARCS_DONT_ESCAPE_ANYTHING,  DARCS_DONT_ESCAPE_EXTRA,  DARCS_ESCAPE_EXTRA,   DARCS_DONT_ESCAPE_ISPRINT,   and
       DARCS_ESCAPE_8BIT
       Darcs  needs  to  escape  certain characters when printing patch contents to a terminal, depending on the
       encoding specified in your locale setting.

       By default, darcs assumes that your locale encoding is ASCII compatible.  This includes  UTF-8  and  some
       8-bit  encodings like ISO/IEC-8859 (including its variants). Since ASCII contains control characters like
       backspace (which could hide patch content from the user when printed literally to the terminal), and even
       ones that may introduce security risks such as redirecting commands to the shell, darcs needs  to  escape
       such characters.  They are printed as `^<control letter>` or `<hex code>`. Darcs also uses special markup
       for  line  endings  that  are  preceeded  by  white  space,  since the white space would otherwise not be
       recognizable.

       If you use an encoding that is not ASCII compatible, things are  somewhat  less  smooth.  Such  encodings
       include  UTF-16  and  UTF-32, as well as many of the encodings that became obsolete with unicode. In this
       case you have two options: you can set DARCS_DONT_ESCAPE_ANYTHING to 1. Then everything that doesn't flip
       code sets should work, and so will all the bells and whistles in your terminal. This environment variable
       can also be handy if you pipe the output to a pager or external filter that knows better than  darcs  how
       to  handle  your  encoding.  Note  that  all  escaping, including the special escaping of any line ending
       spaces, will be turned off by this setting.

       Another possibility  is  to  explicitly  tell  darcs  to  not  escape  or  escape  certain  bytes,  using
       DARCS_DONT_ESCAPE_EXTRA and DARCS_ESCAPE_EXTRA. Their values should be strings consisting of the verbatim
       bytes  in  question.  The  do-escapes  take  precedence over the dont-escapes. Space characters are still
       escaped at line endings though. The special environment variable DARCS_DONT_ESCAPE_TRAILING_CR turns  off
       escaping of carriage return last on the line (DOS style).

       For  historical  reasons,  darcs also supports DARCS_DONT_ESCAPE_ISPRINT and DARCS_USE_ISPRINT (which are
       synonyms). These make sense only for 8-bit encodings  like  ISO-8859  and  are  no  longer  needed  since
       nowadays darcs does the right thing here by default.

       Finally,  if  you  are in a highly security sensitive situation (or just paranoid for other reasons), you
       can set DARCS_ESCAPE_8BIT to 1. This will cause darcs to escape every non-ASCII byte in addition to ASCII
       control characters.

   DARCS_TMPDIR and TMPDIR
       Darcs often creates temporary directories.  For example, the `darcs diff` command  creates  two  for  the
       working  trees  to  be  diffed.  By default temporary directories are created in /tmp, or if that doesn't
       exist, in _darcs (within the current repo).  This can be overridden by specifying some other directory in
       the file _darcs/prefs/tmpdir or the environment variable $DARCS_TMPDIR or $TMPDIR.

   DARCS_KEEP_TMPDIR
       If the environment variable DARCS_KEEP_TMPDIR is defined, darcs will not remove the temporary directories
       it creates.  This is intended primarily for debugging Darcs itself,  but  it  can  also  be  useful,  for
       example,  to  determine  why  your  test  preference (see `darcs setpref`) is failing when you run `darcs
       record`, but working when run manually.

   DARCS_EMAIL and EMAIL
       Each  patch  is  attributed  to  its  author,  usually  by  email  address  (for  example,  `Fred  Bloggs
       <fred@example.net>`).   Darcs  looks in several places for this author string: the `--author` option, the
       files `_darcs/prefs/author` (in the repository) and `~/.darcs/author` (in your home directory),  and  the
       environment  variables `$DARCS_EMAIL` and `$EMAIL`.  If none of those exist, Darcs will prompt you for an
       author string and write it to `~/.darcs/author`.  Note that if you have more than one email address,  you
       can  put  them all in `~/.darcs/author`, one author per line.  Darcs will still prompt you for an author,
       but it allows you to select from the list, or to type in an alternative.

   SENDMAIL
       On Unix, the  `darcs  send`  command  relies  on  sendmail(8).   The  `--sendmail-command`  or  $SENDMAIL
       environment  variable  can  be  used  to provide an explicit path to this program; otherwise the standard
       locations /usr/sbin/sendmail and /usr/lib/sendmail will be tried.

   DARCS_SLOPPY_LOCKS
       If on some filesystems you get an error of the kind:

           darcs: takeLock [...]: atomic_create [...]: unsupported operation

       you may want to try to export DARCS_SLOPPY_LOCKS=True.

   DARCS_SSH
       Repositories of the form [user@]host:[dir] are taken to be remote repositories, which Darcs accesses with
       the external program ssh(1).

       The environment variable $DARCS_SSH can be used to specify an alternative SSH client.  Arguments  may  be
       included,  separated  by whitespace.  The value is not interpreted by a shell, so shell constructs cannot
       be used; in particular, it is not possible for the program name to contain whitespace by using quoting or
       escaping.

   DARCS_SCP and DARCS_SFTP
       When reading from a remote repository, Darcs will attempt to run  `darcs  transfer-mode`  on  the  remote
       host.  This will fail if the remote host only has Darcs 1 installed, doesn't have Darcs installed at all,
       or only allows SFTP.

       If  transfer-mode  fails,  Darcs  will  fall  back  on  scp(1)  and sftp(1).  The commands invoked can be
       customized with the environment variables $DARCS_SCP and  $DARCS_SFTP  respectively,  which  behave  like
       $DARCS_SSH.  If the remote end allows only sftp, try setting DARCS_SCP=sftp.

       scp  is  also  used  by `darcs clone` if the destination is a remote ssh directory. This operation can be
       made quite a bit faster by setting DARCS_SCP=rsync.

   SSH_PORT
       If this environment variable is set, it will be used as the port number for all SSH calls made  by  Darcs
       (when  accessing  remote  repositories  over SSH).  This is useful if your SSH server does not run on the
       default port, and your SSH client does not support ssh_config(5).  OpenSSH users will probably prefer  to
       put something like `Host *.example.net Port 443` into their ~/.ssh/config file.

   DARCS_CONNECTION_TIMEOUT
       Set  the  maximum  time  in  seconds  that  darcs  allows  and connection to take. If the variable is not
       specified the default are 30 seconds.  This option only works with curl.

FILES

   _darcs/prefs/motd
       The `_darcs/prefs/motd` file may contain a 'message of the day' which will  be  displayed  to  users  who
       clone or pull from the repository without the `--quiet` option.

   _darcs/prefs/email
       The  `_darcs/prefs/email` file is used to provide the e-mail address for your repository that others will
       use when they `darcs send` a patch back to you. The contents of the  file  should  simply  be  an  e-mail
       address.

   _darcs/prefs/post
       If `_darcs/prefs/post` exists in the target repository, `darcs send ` will upload to the URL contained in
       that  file,  which  may  either be a `mailto:` URL, or an `http://` URL. In the latter case, the patch is
       posted to that URL.

   _darcs/prefs/author
       The `_darcs/prefs/author` file contains the email address (or name) to be used as the author when patches
       are recorded in this repository, e.g. `David Roundy <droundy@abridgegame.org>`. This file  overrides  the
       contents of the environment variables `$DARCS_EMAIL` and `$EMAIL`.

   _darcs/prefs/defaults
       Default options for darcs commands. Each line of this file has the following form:

           COMMAND FLAG VALUE

       where `COMMAND` is either the name of the command to which the default applies, or `ALL` to indicate that
       the default applies to all commands accepting that flag. The `FLAG` term is the name of the long argument
       option  with  or  without  the  `--`,  i.e. `verbose` or `--verbose`.  Finally, the `VALUE` option can be
       omitted if the flag does not involve a value. If the value has spaces  in  it,  use  single  quotes,  not
       double  quotes,  to  surround  it.  Each  line only takes one flag. To set multiple defaults for the same
       command (or for `ALL` commands), use multiple lines.

       Options listed in the defaults file are just that: defaults. You can override any default on the  command
       line.

       Note  that  the  use  of  `ALL` easily can have unpredicted consequences, especially if commands in newer
       versions of darcs accepts flags that they did not in previous versions. Only use safe flags with `ALL`.

       For example, if your system clock is bizarre,  you  could  instruct  darcs  to  always  ignore  the  file
       modification times by adding the following line:

           ALL ignore-times

       There  are  some  options which are meant specifically for use in `_darcs/prefs/defaults`. One of them is
       `--disable`. As the name suggests, this option will disable every command that got it as argument. So, if
       you are afraid that you could damage your repositories by inadvertent use of a command  like  amend,  add
       the following line:

           amend disable

       A  global defaults file can be created with the name `.darcs/defaults` in your home directory. In case of
       conflicts, the defaults for a specific repository take precedence.

   _darcs/prefs/boring
       The `_darcs/prefs/boring` file may contain a list of regular expressions describing files, such as object
       files, that you do not expect to add to your project. A newly created repository has a boring  file  that
       includes many common source control, backup, temporary, and compiled files.

       You  may  want to have the boring file under version control. To do this you can use darcs setpref to set
       the value 'boringfile' to the name of your desired boring file (e.g. `darcs setpref boringfile  .boring`,
       where  `.boring`  is  the  repository  path  of a file that has been darcs added to your repository). The
       boringfile preference overrides `_darcs/prefs/boring`, so be sure to copy that file to the boringfile.

       You can also set up a 'boring' regexps file in your home directory, named `~/.darcs/boring`,  which  will
       be used with all of your darcs repositories.

       Any  file  not  already  managed  by  darcs  and  whose repository path matches any of the boring regular
       expressions is considered boring. The boring file is used to filter the files provided to darcs  add,  to
       allow  you  to  use  a  simple  `darcs add newdir newdir/*` without accidentally adding a bunch of object
       files. It is also used when the `--look-for-adds` flag is given to whatsnew or record. Note that  once  a
       file has been added to darcs, it is not considered boring, even if it matches the boring file filter.

   _darcs/prefs/binaries
       The  `_darcs/prefs/binaries`  file may contain a list of regular expressions describing files that should
       be treated as binary files rather than text files. Darcs automatically treats files containing characters
       `^Z` or `NULL` within the first 4096 bytes as being binary files.  You probably will  want  to  have  the
       binaries  file  under  version  control.   To  do  this  you  can  use  `darcs  setpref` to set the value
       'binariesfile' to the name of your desired binaries file (e.g. `darcs setpref binariesfile  ./.binaries`,
       where  `.binaries`  is a file that has been darcs added to your repository). As with the boring file, you
       can also set up a `~/.darcs/binaries` file if you like.

   _darcs/prefs/defaultrepo
       Contains the URL of the default remote repository used by commands `pull`, `push`, `send`  and  `optimize
       relink`. Darcs edits this file automatically or when the flag `--set-default` is used.

   _darcs/prefs/sources
       Besides  the  defaultrepo,  darcs also keeps track of any other locations used in commands for exchanging
       patches (e.g. push, pull, send).  These are subsequently used as  alternatives  from  which  to  download
       patches. The file contains lines such as:

           cache:/home/droundy/.cache/darcs
           readonly:/home/otheruser/.cache/darcs
           repo:http://darcs.net

       The  prefix  `cache:`  indicates  that darcs can use this as a read-write cache for patches, `read-only:`
       indicates a cache that is only readable, and `repo:` denotes a (possibly remote) repository. The order of
       the entries is immaterial: darcs will always try local paths before remote ones, and only local ones will
       be used as potentially writable.

       A global cache is enabled by default in your home directory under `.cache/darcs` (older versions of darcs
       used `.darcs/cache` for this), or  `$XDG_CACHE_HOME/darcs`  if  the  environment  variable  is  set,  see
       https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html.   The cache allows darcs to
       avoid re-downloading patches (for example, when doing a second darcs clone of the same  repository),  and
       also allows darcs to use hard links to reduce disk usage.

       Note  that the cache directory should reside on the same filesystem as your repositories, so you may need
       to vary this. You can also use multiple cache directories on different filesystems, if you  have  several
       filesystems on which you use darcs.

       While  darcs  automatically adds entries to `_darcs/prefs/sources`, it does not currently remove them. If
       one or more of the entries aren't accessible (e.g. because they resided on a removable media), then darcs
       will bugger you with a hint, suggesting you remove those entries. This is done  because  certain  systems
       have extremely long timeouts associated with some remotely accessible media (e.g. NFS over automounter on
       Linux),  which can slow down darcs operations considerably. On the other hand, when you clone a repo with
       --lazy from a no longer accessible location, then the hint may give you an idea where the  patches  could
       be found, so you can try to restore access to them.

   _darcs/prefs/tmpdir
       By default temporary directories are created in `/tmp`, or if that doesn't exist, in `_darcs` (within the
       current   repo).    This   can   be   overridden   by   specifying  some  other  directory  in  the  file
       `_darcs/prefs/tmpdir` or the environment variable `$DARCS_TMPDIR` or `$TMPDIR`.

   _darcs/prefs/prefs
       Contains the preferences set by the command `darcs setprefs`.  Do not edit manually.

BUGS

       At http://bugs.darcs.net/ you can find a list of known bugs in Darcs.  Unknown bugs can  be  reported  at
       that site (after creating an account) or by emailing the report to bugs@darcs.net.

SEE ALSO

       The Darcs website provides a lot of additional information.  It can be found at http://darcs.net/

LICENSE

       Darcs  is  free  software;  you  can  redistribute it and/or modify it under the terms of the GNU General
       Public License as published by the Free Software Foundation; either version 2, or (at  your  option)  any
       later version.

                                                2.18.4 (release)                                        DARCS(1)