DARCS(1)

NAME
darcs - David's 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/local/share/doc/darcs/manual/index.html. To easily get more specific help on each command, you can call `darcs COMMAND --help'

COMMANDS

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.

get Get is used to get a local copy of a repository.

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 repo to which you later apply the patch.

mv  Darcs mv needs to be called whenever you want to rename or move a file or directory. Unlike remove, mv actually performs the move itself in your working directory.

whatsnew
    What's-new gives you a view of what changes you've made in your working directory that haven't yet been recorded. The changes are displayed in darcs patch format.

record
    Record is used to name a set of changes.

unrecord
    Unrecord is used to undo a single recorded patch. It will prompt you for which patch to unrecord, and then will undo that patch.

rerecord
    Rerecord is used to add additional changes to a patch which has already been recorded. Despite its name, rerecord is NOT the opposite of unrecord.

revert
    Revert is used to undo changes made to the local tree which have not yet been recorded. You will be prompted for which changes you wish to undo.

unrevert
    Unrevert is used to undo the results of a revert command.

pull
    Pull is used to bring changes made in another repo into the current repo (that is, the one that is the current directory). Pull allows you to bring over all or some of the patches that are in that repo but not in the current one. Pull accepts an argument, which is the URL 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.

unpull
    Unpull is used to undo a single patch that has been pulled from another repository. It will prompt you for which patch to unpull, and then will undo that patch. Beware that unpull undoes the patch both from the repo records AND from the current working directory, and does NOT check that the patch originated with a pull. In other words, you could lose precious code by unpulling!

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.

send
    Send is used to prepare a bundle of patches to send to another 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. In addition, send may optionally be given either an email address or a file name to which to save its output.

apply
    Apply is used to apply a bundle of patches to this repository. Such a bundle may be created using send.

push
    Push is the opposite of pull. Push allows you to move changes from the current repository into another repository.

replace
    Replace allows you to change a specified token wherever it occurs in the specified files. Tokens here are defined by a regexp specifying the characters which are allowed. By default a token corresponds to a C identifier.

tag Tag is used to name a version of the tree.

setpref
    Setpref allows you to set a preferences value in a way that will propagate to other repositories. Valid preferences are: test predist boringfile binariesfile.

diff
    Diff can be used to create a diff between two versions which are in your repository. Specifying just one version will get you a diff against the version in your working directory. 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 human-readable list of changes between versions suitable for use as a changelog.

annotate
    Annotate allows you to extract all sorts of interesting information from your repository.

optimize
    Optimize reorganizes your repository data to make it more efficient to access

check
    Check verifies that the patches stored in the repository, when successively applied to an empty tree, properly recreate the stored current tree.

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 directory.

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.

repair
    Repair attempts to fix corruption that may have entered your repository.

AUTHOR
David Roundy <droundy@abridgegame.org>.