CVSup rewrite - aka csup
mux at FreeBSD.org
Wed May 11 12:06:01 PDT 2005
As you may already know, I've been working for quite some time now on a
rewrite of CVSup in C. It took me a lot of time to realize that I won't
be able to finish it alone, unless my free time significantly increases
for some reason. This is quite a hard thing to say, considering all the
time I've put into this. However, I will now do something I should have
done ages ago. There's a tarball attached to this mail with the current
state of my work modulo some patches, and I'm asking for help! :-)
I've taken some time to write down a TODO list, trying to document all
the bugs, ugly parts of the code, missing bits and features, etc... If
you feel like implementing something listed there, or something that I
forgot to list, you are most welcome.
For now, the really big missing feature is the status file support. The
lack of this (and maybe some stupidities in my code) explains why csup
is so slow as of now. I haven't done any serious benchmarking yet,
it'll probably be time to do so once the code for the status file is
there. I have a big patch to implement this, but it's nowhere near
finished and I haven't touched it in some time. If you want it, just
ask and I'll send it over.
The other big thing missing is support for CVS mode. This is mostly
useful for developers, but it would be a good thing to have. It
probably requires a great deal of work. (For those who don't know, CVS
mode is used to download the full CVS repository, and not just do a
checkout for some tag and/or date).
I wouldn't say csup is usable as of now, given that's is quite slow as I
just explained. However, I've been running it hundreads of time on my
ports tree and as far as I can see it works quite well. Also, to the
best of my knowledge it should work on 4.x, 5.x and 6.x FreeBSD systems,
regardless of the threading library it is linked to (libthr, libkse and
libc_r, need to test with libxu!). It should also work fine whether it
is running on x86, amd64, alpha, sparc64, ia64 or even arm. Only
powerpc hasn't been tested yet. The current codebase should also
already constitute a great documentation of the CVSup protocal, and I
hope people will enjoy reading this code rather than the Modula-3 code
as I had to do :-).
Finally, my sincere apologies to everyone for having taken so much time
to actually release my code. It was much harder than I thought.
More information about the freebsd-current