[darcs-users] visualizing dependency graphs?

S. Günther h8spawn at googlemail.com
Thu Apr 28 00:33:12 UTC 2011


Dear Steffen,

> Has anyone already tried this? Are there existing projects?

Yes (me) and kind of. The thing is that I have a working way of
generating the (transitive reduction of the) patch dependency graph of a
darcs repository, but there are some caveats.

The biggest one probably is the fact, that it's not written in haskell
but in ruby. As such it obviously doesn't use the darcs library but
shells out to the darcs executable, doing dry-runs of pulls into an
empty, temporary repository, parsing the output and generating the
dependency graph from that. All this makes it quite slow, so generating
the dependency graph for the darcs repository (when it had 3605 patches)
takes a whopping ca. 40 hours, while generating a graph for a repository
with 211 patches takes around 2 minutes (all this is on a quite old
machine with a 1GHz Athlon and 768MB RAM).

The next caveat is, that generating the dependency graph and printing it
in .dot format is actually just a byproduct in a project with a
different aim (exporting to git-fast-import format without flattening
the dependency graph), but the dependency graph generation and output is
as far as I've come for now. So it's in a very early stage of
development and thus not packaged or bundled in any way.

Taking these things into consideration it might be more fun/less time
consuming/better to write what you want in haskell using the darcs
library than to use what I've done, but if you're still interested, I've
put the code online. Browse it on or get from:

  http://patch-tag.com/r/gnn/darcs-slow-export

If you take a look at it and have any questions, I'll be happy to
provide answers.

kind regards
Stephan Guenther

--------------------------------------------------------------------------------


More information about the darcs-users mailing list