NAME
darcs - an advanced revision control system
SYNOPSIS
darcs COMMAND ...
DESCRIPTION
darcs is a nifty revision control tool. For more a detailed
description, see the html documentation, which should be available
at /usr/share/doc/darcs/manual/index.html. To easily get more
specific help on each command, you can call `darcs COMMAND --help'
CREATING REPOSITORIES
- get
- Get is used to get a local copy of a repository.
- initialize
- Generally you will only call initialize once for each project
you work on, and calling it is just about the first thing you do.
Just make sure you are in the main directory of the project, and
initialize will set up all the directories and files darcs needs in
order to start keeping track of revisions for your
project.
MODIFYING REPOSITORY CONTENTS
- add
- Add needs to be called whenever you add a new file or directory
to your project. Of course, it also needs to be called when you
first create the project, to let darcs know which files should be
kept track of.
- remove
- Remove should be called when you want to remove a file from
your project, but don't actually want to delete the file. Otherwise
just delete the file or directory, and darcs will notice that it
has been removed. Be aware that the file WILL be deleted from any
other copy of the repository to which you later apply the patch.
- mv
- Darcs mv needs to be called whenever you want to move files or
directories. Unlike remove, mv actually performs the move itself in
your working copy.
- replace
- Replace allows you to change a specified token wherever it
occurs in the specified files. The replace is encoded in a special
patch and will merge as expected with other patches. Tokens here
are defined by a regexp specifying the characters which are
allowed. By default a token corresponds to a C
identifier.
WORKING WITH CHANGES
- record
- Record is used to name a set of changes and record the patch to
the repository.
- pull
- Pull is used to bring changes 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
allows you to bring over all or some of the patches that are in
that repository but not in this one. Pull accepts arguments, which
are URLs from which to pull, and when called without an argument,
pull will use the repository from which you have most recently
either pushed or pulled.
- push
- Push is the opposite of pull. Push allows you to copy changes
from the current repository into another repository.
- send
- 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 sent by email, although
you may save it to a file.
- apply
- Apply is used to apply a bundle of patches to this repository.
Such a bundle may be created using send.
SEEING WHAT YOU'VE DONE
- whatsnew
- whatsnew gives you a view of what changes you've made in your
working copy that haven't yet been recorded. The changes are
displayed in darcs patch format. Note that --look-for-adds implies
--summary usage.
- query manifest
- The manifest command lists the version-controlled files in the
working copy.
OTHER COMMANDS
- revert
- Revert is used to undo changes made to the working copy which
have not yet been recorded. You will be prompted for which changes
you wish to undo. The last revert can be undone safely using the
unrevert command if the working copy was not modified in the
meantime.
- unrevert
- Unrevert is used to undo the results of a revert command. It is
only guaranteed to work properly if you haven't made any changes
since the revert was performed.
- unrecord
- Unrecord does the opposite of record in that it makes the
changes from patches active changes again which you may record or
revert later. The working copy itself will not change.
- amend-record
- Amend-record is used to replace a patch with a newer version
with additional changes.
WARNINGS: You should ONLY use amend-record on patches which only
exist in a single repository! Also, running amend-record while
another user is pulling from the same repository may cause
repository corruption.
- resolve
- Resolve is used to mark and resolve any conflicts that may
exist in a repository. Note that this trashes any unrecorded
changes in the working copy.
- tag
- Tag is used to name a version of this repository (i.e. the
whole tree).
- setpref
- Setpref allows you to set a preference value in a way that will
propagate to other repositories.
Valid preferences are: test predist boringfile binariesfile.
- rollback
- Rollback is used to undo the effects of a single patch without
actually deleting that patch. Instead, it applies the inverse patch
as a new patch. Unlike unpull and unrecord (which accomplish a
similar goal) rollback is perfectly safe, since it leaves in the
repository a record of the patch it is removing.
- diff
- Diff can be used to create a diff between two versions which
are in your repository. Specifying just --from-patch will get you a
diff against your working copy. If you give diff no version
arguments, it gives you the same information as whatsnew except
that the patch is formatted as the output of a diff command
- changes
- Changes gives a changelog-style summary of the repository
history, including options for altering how the patches are
selected and displayed.
- annotate
- Annotate displays which patches created or last modified a
directory file or line. It can also display the contents of a
particular patch in darcs format.
- dist
- Dist is a handy tool for implementing a "make dist" target in
your makefile. It creates a tarball of the recorded edition of your
tree.
- trackdown
- Trackdown tries to find the most recent version in the
repository which passes a test. Given no arguments, it uses the
default repository test. Given one argument, it treats it as a test
command. Given two arguments, the first is an initialization
command with is run only once, and the second is the test command.
- unpull
- Unpull completely removes recorded patches from your local
repository. The changes will be undone in your working copy and the
patches will not be shown in your changes list anymore. Beware that
if the patches are not still present in another repository you will
lose precious code by unpulling!
- obliterate
- Obliterate completely removes recorded patches from your local
repository. The changes will be undone in your working copy and the
patches will not be shown in your changes list anymore. Beware that
you can lose precious code by obliterating!
- put
- Put is the opposite of get. Put copies the content of the
current repository and puts it in a newly created repository.
- optimize
- Optimize can help to improve the performance of your repository
in a number of cases.
- check
- Check verifies that the patches stored in the repository, when
successively applied to an empty tree, properly recreate the stored
pristine tree.
- repair
- Repair attempts to fix corruption that may have entered your
repository.
BUGS
Report bugs by mail to or via the web site
at .
AUTHOR
David Roundy <droundy@abridgegame.org>.