Graphing relations in TLA

introduction

arch enables some pretty far-flung development processes: private branches, branches recursing across several developers, branch renames - the list goes on. It doesn't take long before it gets non-trivial to figure out where all your branches are and how they relate to one another. Graphing relationships can help with the task of figuring out what is going on, and also looks just cool.

tla-graph.py

tla-graph is a tool that analyzes the patchlogs in archives that are referenced from a certain branch (or more branches) and creates a nice description file for VCG 1 or GraphViz' dot/neato 2.

tla-graph requires

The latter two are available from http://johannes.sipsolutions.de/archives/johannes@sipsolutions.de--2004

kinds of graphs

tla-graph currently generates 3 types of output:

dot
output for graphviz' dot, this is complete with revision information
vcg
output for vcg, same, with revision information, but vcg cannot have something like groups so its impossible to align branches
topdot
output that ignores revisions and just shows versions, this output is more suited for neato (from graphviz)

Each output file has to be post-processed with the appropriate tool to get an image you can actually look at.

Note: it is possible to create all 3 files at once, to do this specify:

PYTHONPATH=/where/is/pyarch ./tla-graph.py --format=dot,topdot,vcg --output=outputfile

to get 3 files:

outputfile.dot
outputfile.topdot
outputfile.vcg

show me some output

Some output for tla-contrib and tla is available from http://sourcecontrol.net/stats/archgraph/output/

/!\ WARNING: the postscript files tla-graph creates for tla are huge. They require lots of memory to look at. If you know of a program that will create something browsable on the web like the linux kernel map 3, please tell me. Note that I tried the scripts from http://fcgp.sf.net/, but that didn't work out well because they had assumptions about the incoming postscript that tla-graph can't fulfill; or maybe I just didn't know how to work with these tools.

graphing relations (last edited 2008-07-20 14:03:27 by 64)