Software that works with darcs
Summary
User Interface
Darcs support for the Emacs text editor (Emacs Lisp)
darcs.vim, a plugin for the vim text editor (Vim Script)
Shell Completions for bash, zsh, tcsh and emacs. (Shell Scripts)
darcs-reannotate: a small program that will reformat the "darcs annotate" to make it easier to read. (Python)
EclipseDarcs - Darcs integration with the Eclipse IDE. (Python)
Lispworks - Version Control for Lispworks Lisp IDE
PatchWorks - A (currently alpha) gui for using Darcs on Mac OS X 10.4+ (Ruby)
TortoiseDarcs - A Windows GUI for Darcs. (C++)
Gnus - A small recipe for Gnus to apply patches from the mail client. (Emacs Lisp)
Darcheology A Mac OS X Darcs Explorer (Objective C)
Push Me Pull You - A Linux GUI for multiple DVCSes, including Darcs (Python)
Darcs + other VCS
Tailor - Conversion between Revision Control Systems (Python)
arch2darcs - Conversion from Arch to Darcs and mirroring of Arch branches (Haskell)
darcs_load_dirs - System to automate importing of non-versioned software into darcs over time. (Python)
Repository Browsers
trac+darcs - a plugin to Trac to make it use darcs instead of svn. (example)
Darcsweb - A web-based repo browser written in python. (example)
phpDarcsView - Script for on-line viewing Darcs repositories. (example)
phly_darcs - PHP5 library for browsing Darcs repositories through the web. (example)
Activity Graphs
darcs-graph - Render graphs of commit activity of a darcs repository (Haskell)
darcstats - Generates some stats, e.g. "Top Authors", "Patches per Day", and renders a HTML report. (Python)
Activity Notifications
DarcsMonitor - will send email to a specified recipient about new changes added to a specific darcs repository. (Haskell)
darcs-patch-watch: a lambdabot plugin for posting repository changes to an IRC channel. (Haskell)
Other
darcshive - a 'cheap branches' darcs server (Perl)
darcs2docbook - a XSLT trasfromation for ChangeLog -> docbook revhistory
darcs-buildpackage - System for maintaining Debian packages in Darcs. (Haskell)
darcs-mirror, a small script to push using FTP (requires lftp) to a web-site. Useful when FTP is the only write access to your public web pages.
DarcsDeps - A small perl script to resolve dependency graph of the patches.
RubyDarcs - A (currently trivial) bit of ruby interface to darcs
TracOnDarcs - Instructions on how to set up a trac server, thus getting a sourceforge like environment (Python)
darcs-server - An authenticating push / pull protocol for darcs. (Perl, Haskell)
darcspatcher - Apply Darcs patches outside a Darcs repository. (Python)
buildbot can track and build projects from darcs repositories. (Python)
DarcsWatch tracks patches submitted to projects and their status. It can be used to track personal submissions or watch a community mailing list. (Haskell)
Lost Projects
darcs-apply - Push one forest of darcs under a subdirectory to another forest of darcses, asking the user if certain repositories should be initialized in the case they do not exist (not to be confused with the darcs apply command). As of April '07, this domain seems to be expired and archive.org has no record of it, and googling for "darcs-apply" results in hits for "darcs apply."
DarcsGit, an effort to get Darcs to speak Git. (Haskell)
Detailed descriptions
The following software is built to work with darcs.
darcsweb
darcsweb -- A web interface for darcs
http://users.auriga.wearlab.de/~alb/darcsweb/
darcs get http://users.auriga.wearlab.de/~alb/repos/darcsweb
darcs2rss
darcs2rss is a command line tool which turns a darcs changelog into an RSS feed. You can run it via cron or manually to publish a feed of your repository.
You can fetch it with
darcs get http://darcs.simplicidade.org/repos/darcs2rss/ # or wget -O darcs2rss http://darcs.simplicidade.org/repos/darcs2rss/darcs2rss
See the README for further information.
darcshive
Darcshive is an experimental darcs server with a couple of goals: It implements cheap branches, and it runs on a standard web server without the need to install darcs there.
It's currently 'alpha'. You can learn more from the included README or from the author's blog. You can fetch it with:
darcs get http://www.erisian.com.au/darcs/darcshive/mainline/ darcshive
tailor (formerly tailor.py/cvsync)
Tailor is a bidirectional synchronizer between cvs, svn, and darcs repositories. See Tailor for details.
darcs_load_dirs
darcs_load_dirs is a tool to import and maintain tarballs and other non-version-controlled data in darcs. Given a directory containing an unpacked source tree, and a darcs repository, darcs_load_dirs computes the set of add, delete, and rename commands necessary to get the darcs repository in line with the directory, and to preserve change history for renamed files. If darcs_load_dirs is unable to automatically resolve something, it has a user interface to prompt for manual assistance.
darcs_load_dirs is based upon my earlier tla_load_dirs for Arch, which itself was inspired by svn_load_dirs for Subversion. Because so much code between tla_load_dirs and darcs_load_dirs is common, darcs_load_dirs is simply an additional front-end in the tla_load_dirs package.
The most recent sources for all platforms, as well as the most recent .debs for Debian, can be found best on the Debian mirror network at http://ftp.debian.org/debian/pool/main/t/tla-load-dirs/. If you are not running Debian, simply download the tla-load-dirs tar.gz file and install; it requires only Python, and, despite the name, contains all you need for darcs_load_dirs.
darcs-buildpackage
darcs-buildpackage is a tool for Debian developers to simplify the use of Darcs repositories for tracking changes to projects.
You may obtain it from:
darcs get --partial http://darcs.complete.org/darcs-buildpackage
.tar.gz and i386 .deb available from its temporary homepage at http://quux.org/devel/darcs-buildpackage
- It is available in Debian sid
darcs-buildpackage is a suite of several tools:
- dbp-importdsc: Import an upstream version and a Debian version from a Debian source package, automatically detecting package and version information from the .dsc.
- dbp-importorig: Import an upstream tar.gz or directory.
- dbp-markdeb: Mark a working copy for future reference.
- darcs-buildpackage: Builds a Debian package based on information in the repository, checking out Debian and upstream versions as necessary.
- dbp-get: Checks out a source tree for a package into the current directory, referring to Darcs mirrors if necessary.
