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