A few months ago, I gave a mini-tut at the Advanced LUG on Subversion.
There has since been a longer presentation at the StlLUG or SLUUG (don't
remember.) In essence, SVN is a fine replacement for CVS. If you know
the latter, the learning curve on SVN isn't steep.
That said, I have had a few months now to more deeply evaluate it on a
couple of projects. My basic opinion hasn't changed all that much, but
we did discover some problems with it. And some apparent solutions which
I will detail here in brief.
The biggest problem was the back end repository storage mechanism. The
older 1.0, 1.1 defaulted to BDB which had some problems we ran up
against. The most recurring problem was the need to do a DB recovery
operation every so ofter (too often.) This happened because BDB opens
files in RW mode even when all you are doing is a read operation. If
your process terminates for some reason, it leaves pointers in an
unknown state, forcing a need to recover the db. This was made worse by
our use of TortoiseSVN (a Win32 client,) over the svn:ssh protocol. All
you need is Putty on windows to use a secure access to SVN. If there
were any problems with the client side, (such as a needed conflict
resolution or a duplicate file name,) Tortoise would report an error,
but the connection had been dropped by that point and the back end did
not get cleaned up.
(Also, note that BDB suffers from bugs on Mac OS X 10.3)
The solution to this was to switch the back end from BDB to FSFS (File
System). This is a more robust repository acess mechanism. This was
trivial to do:
First, make sure upgrade the server to version 1.2. By default, I think
it uses FSFS type. On Debian, make sure apt's sources.list contains your
unstable branch. then 'apt-get install subversion'.
[as root]
cd /path/to/repos
mv MyProject MyProject-bdb
svnadmin create --fstype=fsfs MyProject
svnadmin dump MyProject-bdb | svnadmin load MyProject
Some have commented on the long running debate (feud?) over forms and
designs of SCM products. I'm pretty clueless on the merits of one design
over another. Basically, CVS is old and crufty. Attempts to fix it by
layering over it haven't achieved much momentum. Arch is a love affair
by the designer (Tom Lord : the command line client is actually 'tla'
which I suppose stands for Tom Lord's Arch,) and other GNUphiles..Git is
great for highly distributed projects like the kernel. I think SVN fits
right in the average small-to-medium project size that I work with on a
daily basis. It can stand to be improved some more, but as it stands
today I have no issues with what I use it for.
For more on this read: And read the links in the comments too.
http://www.helpfultiger.com/helpfultiger/2005/01/subversion_perv.html
Ed
--
Ed Howland
WDT Solutions, LLC.
[EMAIL PROTECTED]
(314) 962-0766
_______________________________________________
CWE-LUG mailing list
[email protected]
http://www.cwelug.org/
http://www.cwelug.org/archives/
http://www.cwelug.org/mailinglist/