[darcs-users] DRAFT: hcar 2010-11

Eric Kow kowey at darcs.net
Sun Oct 17 11:53:03 UTC 2010


Comments?

\begin{hcarentry}[updated]{Darcs}
\label{darcs}
\report{Eric Kow}%05/10
\participants{}
\status{active development}
\makeheader

Darcs is a distributed revision control system written in Haskell. In
Darcs, every copy of your source code is a full repository, which allows for
full operation in a disconnected environment, and also allows anyone with
read access to a Darcs repository to easily create their own branch and
modify it with the full power of Darcs' revision control. Darcs is based on
an underlying theory of patches, which allows for safe reordering and
merging of patches even in complex scenarios. For all its power, Darcs
remains a very easy to use tool for every day use because it follows the
principle of keeping simple things simple.

Our most recent major release, Darcs 2.4, was in January 2010.
It provides faster repository-local operations, a new interactive hunk
editing feature among other bug fixes and features.  For our next
release, we hope to continue the trend of improving Darcs performance:

\begin{enumerate}
\item Better support for long histories: Petr Rockai has begun work
      (originally started by David Roundy) to make Darcs handle
      long histories in hashed repositories.  If you tag your
      repositories regularly, operations that add or remove patches
      to Darcs should take O(1) time instead of O(N) with respect to
      the number of the patches in your history.
\item Faster Darcs annotate: Benedikt Schmidt has nearly completed
      his work on a new ``patch index'' feature which we hope to make
      darcs annotate considerably faster.  He also plans to overhaul
      the user interface to provide more human-readable output.
\end{enumerate}

These changes and more will appear in the upcoming Darcs 2.5 release,
originally scheduled for July 2010, but delayed to January 2011 for
quality control.

Since our last report, we've had two succesful Google Summer of Code
projects in the 2010 programme.

Adolfo Builes improved the reliability of the Darcs cache system,
making Darcs performance more predictable. He used his work as a
basis for a high-level documentation effort (
\url{http://wiki.darcs.net/Internals/CacheSystem}),
explaining the technical details behind Darcs without implementation
detail.

Alexey Levan optimised the darcs get
operation with an ``optimize --http'' command. In a recent test, we
found that this dramatically reduced the time to fetch Darcs' own
repository:

\begin{tabular}{lrrr}
           & \multicolumn{1}{c}{before} & \multicolumn{2}{c}{after} \\
get        & 40 min &   3 min & \\
get --lazy &  2 min & 0.2 min & (11s) \\
\end{tabular}

Meanwhile, we still have a lot progress to make and are always open to
contributions.  Haskell hackers, we need your help!

Darcs is free software licensed under the GNU GPL.  Darcs is a proud
member of the Software Freedom Conservancy, a US tax-exempt 501(c)(3)
organization.  We accept donations at
\url{http://darcs.net/donations.html}.

\FurtherReading
\url{http://darcs.net}
\end{hcarentry}

-- 
Eric Kow <http://www.nltg.brighton.ac.uk/home/Eric.Kow>
For a faster response, try +44 (0)1273 64 2905 or
xmpp:kowey at jabber.fr (Jabber or Google Talk only)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.osuosl.org/pipermail/darcs-users/attachments/20101017/fe4a75c5/attachment.pgp>


More information about the darcs-users mailing list