Hi!
My name is Johan Sundstr�m (perhaps most commonly referred to as jhs,
due to name conflicts among close friends and colleagues :-). I grew
interested in Subversion when the word got around about a new
free-world cvs replacement, addressing its main irritating issues.
I've been using cvs for a few years in my daily work at Roxen Internet
Software, a company probably known primarily for its GPL webserver
Roxen WebServer (formerly Challenger) and commercial collaborative web
content management software Roxen Platform. Perhaps somebody might
also have heard about us from our programming language Pike (a matured
successor to �LPC, initially based on LPC, a language most known from
various MUD environments). But enough history already; let's move on.
My prime interest in Subversion, and possibly also Subversion's prime
use for me, would be my pet project Code Librarian, a sophisticated
plugin-based web interface to version controlled respositories. At
present, it's mostly on the drawing board stage, but in some respects
it could be considered the complete rewrite of its undergeneralized
predecessor in current use. For a very brief appetizer of what it's
all about, see http://community.roxen.com/projects/CodeLibrarian/ - a
project-page-to-be, loosely speaking.
A quick appetizer about Code Librarian base principles:
* Technically, it's a collection of cooperating Roxen modules (concept
similar to Apache modules), mounted atop eachother in a virtual URL
namespace, hence giving URL:s such as:
http://my.server/diff/context/lines:3/my/TODO.txt/yesterday/now/
http://my.server/events/by/jhs/between/last-visit/and/now/Pike/7.3/
* Plugins come in various categories; devising
* a specific mode of operation, such as the plugin mounted at
"diff/" or "events/" (typically commits and commit messages)
above,
* a filter criterion of some sort (such as the "by/" and
"between/[...]and/" plugins above, the first limiting the scope to
events triggered by a user "jhs", the latter further limiting the
scope to a range in time),
* time signature readers ("yesterday/", "now/" and "last-visit/"),
responsible for converting some URL representation of a specific
point in time to an internal representation of a time object,
* user plugins, who tie various metadata to a specific user, and who
are responsible for keeping track of the various different user
signatures/identities a specific person has in different
repositories the librarian is hooked up to (here resolving "jhs"
to the local user "jhs" who has checked in things in the Pike
repository),
* data plugins, who provide Code Librarian with its real content,
for instance the checkins to a cvs or Subversion repository, the
incoming mail from some mailing list or news group or entries in
your personal diary (exemplified by "my/TODO.txt/" and "Pike/7.3/"
above),
* and finally the various sub-plugins any of the plugin types above
might choose to hook into themselves (e g the "context/" plugin,
eating off a parameter "lines:3/").
Mode plugins drive the request processing action, allowing all the
plugins they have a use for to eat off their part of the URL where
appropriate, and perform some action dependent of the state collected
by its workers (showing three-line context diffs of a file TODO.txt in
the repository mounted at "my/" between yesterday's version and the
latest version in the repository, or listing all checkins by jhs in
the "Pike/7.3/" cvs tree between the time dictated by some last-visit
cookie and present time).
As you can see, the system lends itself well to both browsing what
happens to a repository, fetching some specific file from some given
time, branch or similar, diffing files to eachother, cvs annotating
and many other fun things you might conceive and want to do through a
web-enabled device of some sort.
Well, I think that's about enough chatter about Code Librarian too. :)
Time constraints will probably limit my participation to discussing
ideas and taking some interest in various places I might find it worth
my while hooking in Code Librarian to listing, browsing and searching
Subversion repositories, perhaps stretching somewhat into design work,
as it turns out whether I'd be useful or not and find the time to
invest. I'll definetely get myself a installation when my own project
has gotten far enough to actually do something, but that might still
be some weeks or months away.
For now, I presume I will mainly be lurking on the list for a while,
trying to seep in the state of the world, but over time I expect to
join in discussions every few nights or weekends. I'm poor at
predicting how involved I'll really get, though - for all I know I
might even drag in a few colleagues who would probably be interested
in porting the Apache DAV layers to a Roxen environment (or do so on
my own, should it prove useful for my own purposes).
Blue sky. See you around!
--
/ Johan Sundstr�m <jhs@roxen.com> (subscribed via a list handler)
Received on Sat Oct 21 14:36:29 2006