Hi all,
I'm in the process of putting together a bonsai-like interface
to Subversion. A running version is online at:
http://svn.adaptiveinternational.com/info.cgi
Current features:
1) List of tags, when and on what branch they were created
2) Warnings when tags get modified (what idiot would do this you might ask....)
3) List of open branches, and commits that haven't been tagged
4) Log summaries between tags along branches
5) Log summaries of untagged commits along branches
(i.e. between HEAD and the youngest tag on that branch)
It's currently a pretty brute perl script that calls "svn log" and
"svn ls" and "svnlook info". I'd call it "proof of concept" quality
at this point. The code will be released at some point in
the not-so-distant future, but not until I don't feel ashamed by it :P
I doubt that it's going to ever try to handle mixed-revision tags,
the whole point of the exercise is to provide a simple view for
project management...
It's useful for getting a quick overview of a project's status/branch
history, and quickly gatheres all the important revisions in a project
lifetime (branch points, tag points, etc).
It assumes the following directory structure inside a single
repository:
projectA/trunk
/branches
/tags
projectB/trunk
/branches
/tags
although in the future I plan to extend it to allow one-project-per-repository
and the "trunk/projectA" "branches/projectA" structure as well.
Performance is pretty bad, the multiple calls to the svn binary
get quite expensive if there are lots of tags/branches/etc. I'd
appreciate some advice on how it might be made more efficient
(I'm guessing I could use some language bindings and only initialise
the DBM once, but I'm not familiar with Python and there don't seem
to be any Perl/PHP (my preferred languages) up and running. Perhaps
SWIG can generate them, but I haven't looked into it).
Items on the todo list:
1) Find and show "dead" branches (optionally)
2) Work out when and where merges occur, and show that info
(probably depends on no-there-yet merge-history features)
3) Use some language bindings to do the whole thing in one
DBM session
4) Produce an XML description of the project branch/tag tree
(to automate reports?)
5) Produce a pretty diagram of the branch/tag tree (XSLT to SVG?)
6) Perform rudimentary branch/tag operations through the web
interface (create branches, create tags, etc).
daniel
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat May 17 09:38:49 2003