mjbohn wrote:
Do you have experience in using VS with SVN? Would like to use it in my private coding environment. At job we have TFS, which is fine but way to big (and expensive) for private use.
Yes, I used Subversion in different companies, installed different server settings and different OS; even my CodeProject articles are written under SVN. Event for work, revision control should be open source — the reliability if it is tested by millions. I think, at this moment most convenient amazingly low-footprint server is VisualSVN Server. Its manager does all the administration in a single point. It works with HTTP/HTTPS via a miniature Apache-bases server. The bare-bone manually installed service also allowed me to use faster SVN protocol. In all cases, this is very easy to move the database from machine to machine, join or split unrelated projects, backup them. This is easy as you can use the Subversion newer filesystem-based storage system (and I recommend to prefer it to alternative storage system, see also about compatibility with other systems below).
See
http://en.wikipedia.org/wiki/VisualSVN#VisualSVN_Server[
^],
http://www.visualsvn.com/[
^.
Again, installation of Apache with modules on Linux is easy enough, but this is still editing configuration files manually and reading a lot of documentation. Also, I found it important to develop scripts for administration, in particular, for creating a new project and bindings between Subversion and Trac databases with cloning of previously tuned configuration. With VisualSVN server you do it in the UI.
Best client — TortoiseSVN, I think, but a command-line client is good to have for some tricky operations, like reporting with complex queries. This client is fully embedded in the Windows Shell as a context menu extension, it works out of context menu click of any file manager using Shell API (not just Explorer). I want to emphasize that it's important to have a client not integrated in any IDE, must non-intrusive. You can work with files having nothing to do with Visual Studio or something else. At the same time, it's good to feel that you are working with just some source directory, not VS solution. Non-obtrusive Revision Control is most important. However, anyone who like integration with Visual Studio can use VisualSVN client (see the reference above; this is a product is a part of the same Windows Solution Stack as the server, but the two products are totally independent).
Open-Source Bazaar, Git and Mercurial are interesting distributed alternatives; they all can use SVN storage system, so using SVN won't put you in a dead end.
See:
http://en.wikipedia.org/wiki/Git_%28software%29[
^],
http://git-scm.com/[
^];
http://en.wikipedia.org/wiki/Bazaar_%28software%29[
^]
http://bazaar.canonical.com/[
^];
http://en.wikipedia.org/wiki/Mercurial_%28software%29[
^],
http://mercurial.selenic.com/[
^].
The above products also have corresponding Tortoise clients.
When I tried all of them, I felt they were not quite mature in comparison to SVN, but it was several years ago, so it would be interesting to try them out and compare.
See also this discussion, including my solution with some arguments:
Revision control systems, which to choose from?[
^].
—SA