You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Jay Freeman (saurik)" <sa...@saurik.com> on 2002/06/29 01:22:05 UTC

ANN: Port of Horde's Chora to Subversion (CVSWeb-like functionality)

Well, I've been giving this project thought for the last week or so, and
finally got off my ass and did it today (got motivated after seeing the
thread on ViewSVN).  It was kind of fun, had to be extra creative.  Things
like "check out a specific revision of a file" turned into monumental
challenges.  To get directory listings I actually pipe commands into
"svnadmin shell" and parse the output...

I have a working repository online at http://mail.saurik.net/chora/ as a
demo.  Note that that is _.net_, not .com (http://mail.saurik.com/chora/ is
just going to give you an error message... actually... *sets up a
redirector*... ok, now it will just ferry you off to the real one).  The
"Chora" repository (which you will likely get thrown into first) is CVS.  If
you change your location to "Menes" you will be browsing a Subversion
repository.  That repository is backed by http://svn.saurik.com/repos/menes/
if you wanted to look at that for any reason.  It's quite slow sometimes...
you might have to wait up to 20 seconds for some of the larger directories
in the repositories to parse fully.

I ported the CVSLib that it uses to SVNLib, and then set it up to have them
work side-by-side so the original CVS functionality is still there (a few
more if statements than I want, but I still need to do some cleanup work).

You can get the code for it through CVS from:

:pserver:anonymous@cvs.saurik.com:/cvs/chora
the password is empty, and the module is "chora"

Using CVS because SVN doesn't automate vendor branches :).

I modified the distribution configuration files to show how to configure
it... I _might_ have forgotten something.  If so, yell at me.  Note that
Chora needs to be installed with Horde, so if you really want to play with
this you might want to try getting the real Chora setup first so you can see
how it is done before trying to futz with my patched copy.

You _do_ need URL access to the repository for this to work (which you setup
in the configuration file in addition to the local path), as the only way I
could figure out how to check a file out at a given revision was to use the
secret URLs that no one is ever supposed to use.  Hence, you also need wget
installed.

I have diff, checkout, directory listing, and log output working.  Don't
even try clicking on the branch and annotation support, it doesn't work yet
(and I'm not even sure if there is a generic way to do branch support using
such a simple interface for Subversion).

The three functionality limitations I know of so far are:

1) Chora presents a quick link for "Diffs to version XX" where XX is the
previous revision.  I need to rework things a tad so instead of CVSLib_Rev
just substracting to get the previous revision it is forced to go back to
the CVSLib_File object and get the previous log entry.  You can still ask
for diffs, you just can't use that one quick link it gives you.

2) You can't ask for different diff formats.  They all come out as context
diffs (or unified diffs or whatever they are).  I would have to download the
files into temporary directories and do the diff manually for other formats
as svn won't give them, and I'm not doing that yet :).  The graphical diff
editor _works_, it just doesn't let you look at it in different ways.

3) I don't yet have it telling you how many lines were added/removed between
revisions.  Probably would make things extra slow (as if it isn't slow
enough all ready).

Sincerely,
Jay Freeman (saurik)
saurik@saurik.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Port of Horde's Chora to Subversion (CVSWeb-like functionality)

Posted by Branko Čibej <br...@xbc.nu>.
Jay Freeman (saurik) wrote:

>2) You can't ask for different diff formats.
>
Yes, you can, actually: "svn diff -x'-C4 -Ew' foo".
svn help diff is your friend. :-)


-- 
Brane Čibej   <br...@xbc.nu>   http://www.xbc.nu/brane/


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: Port of Horde's Chora to Subversion (CVSWeb-like functionality)

Posted by "Jay Freeman (saurik)" <sa...@saurik.com>.
In case anyone's interested, I figured out what I did to make it _so_ slow
(was ignoring flags that let me not scrounge up _all_ of the logs and
instead only target the logs for the latest revisions).  It's about 3 times
faster while browsing directories now on my menes repository... likely
considerably more on my ninetjer repository or on something like the
subversion repository (although still about 2-3 times _slower_ than CVS on
similar directories... I'm spawning about twice as many processes to get the
information, so I'd guess that's the bottleneck), and I fixed the problem
with sorting by different keys (which I saw someone trip across in my apache
logs).

Sincerely,
Jay Freeman (saurik)
saurik@saurik.com

----- Original Message -----
From: "Jay Freeman (saurik)" <sa...@saurik.com>
To: "svn-dev" <de...@subversion.tigris.org>
Sent: Friday, June 28, 2002 8:22 PM
Subject: ANN: Port of Horde's Chora to Subversion (CVSWeb-like
functionality)


...
> if you wanted to look at that for any reason.  It's quite slow
sometimes...
> you might have to wait up to 20 seconds for some of the larger directories
> in the repositories to parse fully.
...
> Sincerely,
> Jay Freeman (saurik)
> saurik@saurik.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org