1DARCS(1)                         User Commands                        DARCS(1)
2
3
4

NAME

6       darcs - an advanced revision control system
7

SYNOPSIS

9       darcs COMMAND ...
10

DESCRIPTION

12       darcs  is  a nifty revision control tool.  For more a detailed descrip‐
13       tion,  see  the  html  documentation,  which  should  be  available  at
14       /usr/share/doc/darcs/manual/index.html.   To  easily  get more specific
15       help on each command, you can call `darcs COMMAND --help'
16
17

CREATING REPOSITORIES

19       get    Get is used to get a local copy of a repository.
20
21
22       initialize
23              Generally you will only call initialize once  for  each  project
24              you  work  on,  and calling it is just about the first thing you
25              do.  Just make sure  you  are  in  the  main  directory  of  the
26              project,  and  initialize  will  set  up all the directories and
27              files darcs needs in order to start keeping track  of  revisions
28              for your project.
29
30

MODIFYING REPOSITORY CONTENTS

32       add    Add  needs to be called whenever you add a new file or directory
33              to your project.  Of course, it also needs to be called when you
34              first  create  the project, to let darcs know which files should
35              be kept track of.
36
37
38       remove Remove should be called when you want to remove a file from your
39              project,  but don't actually want to delete the file.  Otherwise
40              just delete the file or directory, and darcs will notice that it
41              has  been  removed.  Be aware that the file WILL be deleted from
42              any other copy of the repository to which you  later  apply  the
43              patch.
44
45
46       mv     Darcs  mv  needs to be called whenever you want to move files or
47              directories. Unlike remove, mv actually performs the move itself
48              in your working copy.
49
50
51       replace
52              Replace  allows  you  to  change  a  specified token wherever it
53              occurs in the specified files.  The replace is encoded in a spe‐
54              cial  patch  and  will  merge  as  expected  with other patches.
55              Tokens here are defined by a regexp  specifying  the  characters
56              which  are allowed.  By default a token corresponds to a C iden‐
57              tifier.
58
59

WORKING WITH CHANGES

61       record Record is used to name a set of changes and record the patch  to
62              the repository.
63
64
65       pull   Pull  is  used  to bring changes made in another repository into
66              the current repository (that is, either the one in  the  current
67              directory, or the one specified with the --repodir option). Pull
68              allows you to bring over all or some of the patches that are  in
69              that  repository  but  not  in this one. Pull accepts arguments,
70              which are URLs from which to pull, and when  called  without  an
71              argument,  pull will use the repository from which you have most
72              recently either pushed or pulled.
73
74
75       push   Push is the opposite of pull.  Push allows you to  copy  changes
76              from the current repository into another repository.
77
78
79       send   Send  is used to prepare a bundle of patches that can be applied
80              to a target repository.  Send accepts the URL of the  repository
81              as  an argument.  When called without an argument, send will use
82              the most recent repository that was  either  pushed  to,  pulled
83              from or sent to.  By default, the patch bundle is sent by email,
84              although you may save it to a file.
85
86
87       apply  Apply is used to apply a bundle of patches to  this  repository.
88              Such a bundle may be created using send.
89
90

SEEING WHAT YOU'VE DONE

92       whatsnew
93              whatsnew  gives  you  a view of what changes you've made in your
94              working copy that haven't yet been recorded.   The  changes  are
95              displayed  in  darcs  patch  format.  Note  that --look-for-adds
96              implies --summary usage.
97
98
99       query manifest
100              The manifest command lists the version-controlled files  in  the
101              working copy.
102
103
104       query tags
105              The  tags command writes a list of all tags in the repository to
106              standard output.
107

OTHER COMMANDS

109       revert Revert is used to undo changes made to the  working  copy  which
110              have  not  yet  been  recorded.   You will be prompted for which
111              changes you wish to undo. The last revert can be  undone  safely
112              using  the unrevert command if the working copy was not modified
113              in the meantime.
114
115
116       unrevert
117              Unrevert is used to undo the results of a revert command. It  is
118              only guaranteed to work properly if you haven't made any changes
119              since the revert was performed.
120
121
122       unrecord
123              Unrecord does the opposite  of  record  in  that  it  makes  the
124              changes  from  patches active changes again which you may record
125              or revert later.  The working copy itself will not change.
126
127
128       amend-record
129              Amend-record is used to replace a patch  with  a  newer  version
130              with additional changes.
131
132              WARNINGS: You should ONLY use amend-record on patches which only
133              exist in a single repository! Also, running  amend-record  while
134              another  user  is  pulling  from  the  same repository may cause
135              repository corruption.
136
137
138       resolve
139              Resolve is used to mark and resolve any conflicts that may exist
140              in  a repository.  Note that this trashes any unrecorded changes
141              in the working copy.
142
143
144       tag    Tag is used to name a version of this repository (i.e. the whole
145              tree).
146
147
148       setpref
149              Setpref  allows you to set a preference value in a way that will
150              propagate to other repositories.
151
152              Valid preferences are: test predist boringfile binariesfile.
153
154
155       rollback
156              Rollback is used to undo the effects of a single  patch  without
157              actually  deleting  that patch.  Instead, it applies the inverse
158              patch as a new patch.  Unlike unpull and unrecord (which  accom‐
159              plish  a  similar  goal)  rollback  is  perfectly safe, since it
160              leaves in the repository a record of the patch it is removing.
161
162
163       diff   Diff can be used to create a diff between two versions which are
164              in your repository.  Specifying just --from-patch will get you a
165              diff against your working copy.  If you  give  diff  no  version
166              arguments,  it gives you the same information as whatsnew except
167              that the patch is formatted as the output of a diff command
168
169
170       changes
171              Changes gives a changelog-style summary of the  repository  his‐
172              tory,  including  options  for  altering  how  the  patches  are
173              selected and displayed.
174
175
176       annotate
177              Annotate displays which  patches  created  or  last  modified  a
178              directory  file  or  line. It can also display the contents of a
179              particular patch in darcs format.
180
181
182       dist   Dist is a handy tool for implementing a "make  dist"  target  in
183              your  makefile.  It creates a tarball of the recorded edition of
184              your tree.
185
186
187       trackdown
188              Trackdown tries to find the most recent version in  the  reposi‐
189              tory  which  passes  a  test.   Given  no arguments, it uses the
190              default repository test.  Given one argument, it treats it as  a
191              test  command.  Given two arguments, the first is an initializa‐
192              tion command with is run only once, and the second is  the  test
193              command.
194
195
196       unpull Unpull  completely  removes  recorded  patches  from  your local
197              repository.  The changes will be undone in your working copy and
198              the  patches  will  not  be  shown in your changes list anymore.
199              Beware that if the patches are  not  still  present  in  another
200              repository you will lose precious code by unpulling!
201
202
203       obliterate
204              Obliterate  completely  removes recorded patches from your local
205              repository.  The changes will be undone in your working copy and
206              the  patches  will  not  be  shown in your changes list anymore.
207              Beware that you can lose precious code by obliterating!
208
209
210       put    Put is the opposite of get. Put copies the content of  the  cur‐
211              rent repository and puts it in a newly created repository.
212
213
214       optimize
215              Optimize  can help to improve the performance of your repository
216              in a number of cases.
217
218
219       check  Check verifies that the patches stored in the  repository,  when
220              successively  applied  to  an  empty tree, properly recreate the
221              stored pristine tree.
222
223
224       repair Repair attempts to fix corruption that  may  have  entered  your
225              repository.
226
227
228

BUGS

230       Report  bugs  by  mail  to  bugs@darcs.net  or  via  the  web  site  at
231       http://bugs.darcs.net/.
232
233

AUTHOR

235       David Roundy <droundy@abridgegame.org>.
236
237
238
239darcs                              July 2007                          DARCS(1)
Impressum