===== darcs ===== "Darcs is a revision control system, along the lines of [[CVS]] or [[ARCH]]. That means that it keeps track of various revisions and branches of your project, allows for changes to propagate from one branch to another. Darcs is intended to be an 'advanced' revision control system. Darcs has two particularly distinctive features which differ from other revision control systems: 1) each copy of the source is a fully functional branch, and 2) underlying darcs is a consistent and powerful theory of patches." * homepage/download/docs http://abridgegame.org/darcs/ or http://darcs.net/ * read the manual > http://darcs.net/manual/darcs.html ==== feature summary ==== * VersionControl * Every source tree a branch * A simple advanced tool * Keeping track of changes rather than versions * Record changes locally * Interactive records * Unrecord local changes * Interactive everything else * Test suites * Any old server * You decide write permissions * Symmetric repositories * CGI script * File and directory moves * Token replace * Configurable defaults ==== repos ==== the [[FoAM]] repositories can be accessed using the interwiki tag 'FoamDarcs:' for example FoamDarcs:ceed ie. http://fo.am/cgi-bin/darcsweb.cgi?r=ceed ==== emigration from cvs ==== instructions and tools for converting cvs repositries to darcs are available at http://www.scannedinavian.org/DarcsWiki/ConvertingFromCvs ==== bug tracking ==== using darcs and trac together > http://www.darcs.net/DarcsWiki/TracOnDarcs ==== cvs/arch x-ref ==== based on entries in the manual with the caveat that "Because of the different models used by cvs (or arch) and darcs, it is difficult to provide a complete equivalence between cvs (or arch) and darcs. A rough correspondence for the everyday commands follows"
darcs cvs arch
darcs initialize   tla init-tree
darcs get cvs checkout tla get
darcs pull cvs update tla update
darcs pull --dry-run cvs -n update (summarize remote changes)  
darcs revert   tla file-diffs f "pipe" patch -R
darcs whatsnew cvs diff (if checking local changes) tla changes -diffs
darcs whatsnew --summary cvs -n update  
darcs whatsnew -ls "pipe" grep ^a cvs -n update "pipe" grep '?' (list potential files to add)  
darcs changes   tla logs
darcs diff cvs diff (if checking recorded changes)  
darcs diff -u   tla file-diffs
darcs add cvs add tla add
darcs mv - tla mv (not tla move)
darcs record cvs commit (if committing locally) tla commit (if committing locally)
darcs tag cvs commit tla commit (if marking a version for later use)
darcs push or darcs send cvs commit (if committing remotely) tla commit (if committing remotely)
darcs pull or darcs push   tla archive-mirror
darcs get cvs tag -b tla tag (if creating a branch)
darcs tag cvs tag tla tag (if creating a tag).