to start:

darcs init

now create the files, do some work and after that:

   $> darcs add file1 file2 file3 ...
   $> darcs record -am 'some comments here'

if you later discover that your patch is

then you can use 'darcs amend-record' to correct it

if you think that things are very wrong, then 'darcs unrecord' deletes the patch entirely

none of the above commands change your working directory

'darcs whatsnew' lists unrecorded changes to the working tree

'darcs changes' will show you your patches

how to go back to the last saved version of the file?

    $> darcs revert <FILENAME>

how to ignore some files?

use a _darcs/pref/boring file

to see what boring files darcs is not managing, use 'darcs whatsnew -ls --boring'

in the boringfile:
if you want to match a directory and its contents, use a regex:


be aware that there is no / or ./ at the beginning of the paths that darcs matches against

how to create a branch in darcs?

short answer: no way

in darcs branches and repositories are the same thing. so to create a branch, you have to use

  $> darcs clone --to-patch='PATCHNAME' <REPO-DIR>
  $> darcs clone --tag <TAGNAME> <REPO-DIR>

how do I go back to an older version of my repository?

    $> darcs clone --to-match 'typeofmatch paramofmatch'

typeofmatch : name, exact, hash, author, date
   $> darcs put <REPO-DIR>  creates a copy of the current repository

to set remote repository: 'darcs put --set-default </path/to/remote/repo>' and after that 'darcs push'

to reproduce the state of a repository 'R' as it is at tag 't', use the command

    $> darcs clone -tag t R

if you want to see which patches are missing from your or the remote repository, you can run

  # patches you are missing
  $> darcs pull --dry-run
  # patches the remote repository is missing
  $> darcs push --dry-run

the command 'darcs show tags' lists all tags in the current repository