monotone-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] Ancestry Graph


From: Brian Campbell
Subject: [Monotone-devel] Ancestry Graph
Date: Thu, 19 Aug 2004 15:01:41 -0400

The information currently output by the agraph information is not as useful as it could be. I'm considering adding some more functionality, and wonder what people think of these ideas.

First of all, it outputs in VCG format, and I cannot find a working link to a copy of xvcg. It seems that xvcg stopped being updated in 1995, so its viability in the future is questionable. GraphViz is much more widely used, actively maintained, and there are more tools which use its DOT file format, so it would probably be good to have monotone output dot format files, rather than xvcg format. What do people think of having me update it to output DOT format? Has someone already done this? I know I've found a perl script online which already converts the xvcg output of monotone into DOT format, but I don't know if anyone's integrated anything like that into monotone. Right now I'm using a hacked up version of that script to prototype my ideas, but I'd really like to integrate them into monotone, so they aren't dependent on the output format of the agraph and ls certs commands.

Also, I have found that it's very helpful to include in nodes information like the author, date, and first line of the changelog. I am not sure exactly how information like this should be handled. Not everyone wants the same set of information output. Also, it might be nice to be able to color nodes based on either author or branch, but again, that's something that people would want to do on an individual basis. I'm not sure exactly how I should handle this. One possibility is outputting a graph with all the possible information, and having a tool to munge it to the form that people want. If the format were originally DOT, it might be kind of annoying to format the text labels, because I would need to output key/value pairs for all of the various things people might like to see, and then manipulate those into a nicely readable version for the final output, and in dot, all you have is a string for a label, which isn't very convenient for selecting various different pieces of information. Another format, possibly an ad-hoc one, might work better. Another option is to pass some sort of format string specifying what information should be printed out to the agraph command, and having monotone generate the appropriate DOT file with the label already formatted. Any thoughts as to which I should do?

Finally, when I display the first line of the changelog, in a lot of cases, people put information that duplicates what's already available (like their name, email address, and the date). Do you think that maybe we should decide on a convention where the first line of the changelog is a summary of what changed, or allow people to prefix a line in the changelog with "summary:", or add an extra cert for a name for the change, like darcs does? This last one might also help if you could use the name as a selector. Although tags also sort of do this already, so it might be redundant. I just think it would be nice to have something descriptive attached to all or most manifests which could be displayed in the ancestry graph or in logs and could be used to select a particular manifest in a selector.

Anyhow, if anyone has any ideas about how this should be done, or has already done some of it, let me know.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]