RelatedSoftware

Software that works with darcs

Summary

User Interface

  • [wiki:CategoryEmacs Darcs support for the Emacs text editor] (Emacs Lisp)
  • darcs.vim, a plugin for the vim text editor (Vim Script)
  • [wiki:ShellCompletion Shell Completions] for bash, zsh, tcsh and emacs. (Shell Scripts)
  • [wiki:DarcsReannotate 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)
  • commit-patch - Commit a patch file to a darcs, hg or cvs repo. Includes convenient emacs hooks. (Perl)

Darcs + other VCS

  • Tailor - Conversion between Revision Control Systems (Python)
  • [wiki:Self:ConvertingFromArch#head-b7a9f78154fcab5d8bf0e759e7b4f30b72202399 arch2darcs] - Conversion from Arch to Darcs and mirroring of Arch branches (Haskell)
  • [wiki:Self:RelatedSoftware#head-df854c9355aa57ed89ee369ab1cea79a53e10cef darcs_load_dirs] - System to automate importing of non-versioned software into darcs over time. (Python)
  • darcs2git (non-incremental)
  • git-darcs-import
  • darcs-fast-export
  • undarcs (said to make false imports when conflicts occur (?))

Repository Browsers

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-notify - sends email about patches that are pushed to, pulled to, or unpulled from a specific darcs repository. (Perl)
  • [wiki:DarcsPatchWatch darcs-patch-watch]: a lambdabot plugin for posting repository changes to an IRC channel. (Haskell)
  • darcs-hooks darcs-hooks is a framework for darcs hooks. you can write plugins for it, configure them and each plugin will be invoked once for each pushed patch. It includes a mail sending tool, a CIA client and more (Python)

Other

  • [wiki:Self:RelatedSoftware#head-db0f6d68f34bff41b72adedfe878c58df8c9b266 darcshive] - a 'cheap branches' darcs server (Perl)
  • [wiki:Self:RelatedSoftware#head-62e9ce54aa53a3ca4a664bd80721b7ea1b836d21 darcs2rss] - Easy ChangeLog -> RSS convertor (Perl)
  • [wiki:Darcs2Docbook darcs2docbook] - a XSLT trasfromation for ChangeLog -> docbook revhistory
  • [wiki:Self:RelatedSoftware#head-78b9b05d28364b2e86111f6af30717027c2f44df 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-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.