DARCS(1)

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

CREATING REPOSITORIES

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.

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

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.

WORKING WITH CHANGES

record
    Record is used to name a set of changes.

pull
    Pull is used to bring changes made in another repo into the current repo (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 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.

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.

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

SEEING WHAT YOU'VE DONE

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

changes
    Changes gives a human-readable list of changes between versions suitable for use as a changelog.

OTHER COMMANDS

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. Unrecord doesn't affect your working copy of the tree at all.

amend-record
    Amend-record is used to replace a patch with a newer version with additional changes.

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.

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.

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 --from-patch 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

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.

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.

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