[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Bonsai-like interface for Subversion

From: Daniel Patterson <danpat_at_adaptiveinternational.com>
Date: 2003-05-17 09:40:38 CEST

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

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.