Let me start by saying I just love Subversion ( SVN ). When it comes to source control there are many different products to choose from, VSS, CVS, Sourcegear Vault, Perforce, Microsoft VSTS just to name a few. They all have their pros and cons and until last night I swore by SVN. Like I said before, I love SVN. These guys really deserve a great deal of credit. SVN is free and it functionality meets the needs of a great SCC repo. When I looked to pick my personal SCC repo, I looked for the obvious things like commit, update, delete, etc and on top of that I look for things like :
I setup a small repo with SVN and was in awe. I don’t think I spent more that 30 minutes starting from scratch to committing files. I used it for a few months and decided I better move the DB to a RAID I had sitting on another sever. This would give me the reliability of a raid yet run SVN on a separate machine.
WRONG!! I was able to mount a directory to a share on another server with the RAID. svnadmin created the DB just fine, but things puked when I tried to use it.
It logged the following:
(20014)Error string not specified yet: Berkeley DB error while opening environment for filesystem /PATH/To/Repos/ db:\nInvalid argument [error] [client XXX.XXX.XXX.XXX] Could not fetch resource information. [500, #0] [error] [client XXX.XXX.XXX.XXX] Could not open the requested SVN filesystem [500, #160029] [error] [client XXX.XXX.XXX.XXX] Could not open the requested SVN filesystem [500, #160029]
(20014)Error string not specified yet: Berkeley DB error while opening environment for filesystem /PATH/To/Repos/ db:\nInvalid argument
[error] [client XXX.XXX.XXX.XXX] Could not fetch resource information. [500, #0]
[error] [client XXX.XXX.XXX.XXX] Could not open the requested SVN filesystem [500, #160029]
I hit the SVN book to see what I had done wrong only to find this.
Warning Do not create your repository on a network share—it cannot exist on a remote filesystem suchas NFS, AFS, or Windows SMB. Berkeley DB requires that the underlying filesystem implementstrict POSIX locking semantics, and more importantly, the ability to map files directlyinto process memory. Almost no network filesystems provide these features. If you attempt touse Berkeley DB on a network share, the results are unpredictable—you may see mysteriouserrors right away, or it may be months before you discover that your repository database is subtlycorrupted. As stated on page 83 of Version Control with Subversion
Warning
Do not create your repository on a network share—it cannot exist on a remote filesystem suchas NFS, AFS, or Windows SMB. Berkeley DB requires that the underlying filesystem implementstrict POSIX locking semantics, and more importantly, the ability to map files directlyinto process memory. Almost no network filesystems provide these features. If you attempt touse Berkeley DB on a network share, the results are unpredictable—you may see mysteriouserrors right away, or it may be months before you discover that your repository database is subtlycorrupted.
As stated on page 83 of Version Control with Subversion
and so the boat sailed off into the distance with all the n-tier SCC users as SVN stood there watching.
BUT there is good news…..
The SVN team stated as a long term product goal they were going to add a SQL repository back-end. You can stay informed about it here.
Powered by: newtelligence dasBlog 2.3.9074.18820
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
E-mail
Theme design by Jelle Druyts