[Haskell-cafe] darcs patch dependencies in dot format

Sönke Hahn shahn at cs.tu-berlin.de
Sat May 12 14:52:00 CEST 2012


Hi all!

Yesterday I wrote a little tool to output the dependencies of darcs
patches in dot format. The hardest part was to wrap my head around the
darcs API and find a way to let it compute the patch dependencies. I
don't know, if I got it right, but it looks correct at first glance.

Here is the code:

https://patch-tag.com/r/shahn/darcs2dot

To use it just execute the program in a darcs repo and it will output a
dot graph to stdout. The graph does not contain all dependencies, but
the transitive reduction. The patch names are truncated at 15 characters.

And here is an example graph:

http://open-projects.net/~shahn/patchDeps.pdf

These are the patch dependencies of one of my darcs repos
(https://patch-tag.com/r/shahn/hate). Some observations I made:

* There are two completely separate subgraphs. One subgraph seems to be
for the testsuite, the other for the actual code. This means, the two
don't depend on each other and could easily be put in two distinct repos.
* There is a "re-implementation" patch with a lot of incoming and
outgoing edges. (Which makes sense.)
* There are some sequences of patches (e.g. these four "allow ..."
patches in the upper left corner) that seem to contain related patches.
* darcs's patch system is awesome!

Any comments or suggestions?

Cheers,
Sönke



More information about the Haskell-Cafe mailing list