views:

534

answers:

7

We are leaving VSS for TFS or any other alternatives. I'm the one who persists to go for an open source alternative like SVN. Now I'm searching for a good open source Version Control regarding following aspects:

  1. We are in love with open source movement and cross-platform.
  2. Could it be possible to use it with Mono, SharpDevelop and Express editions of VS instead of Visual Studio itself?
  3. What about backup?
  4. Is it integrated with VS without serious problems?
  5. Any API or command prompt access?

Please notice I've read following previous texts about it but still need more help:

http://stackoverflow.com/questions/690766/vss-or-svn-for-a-net-project

http://stackoverflow.com/questions/61959/tfs-vs-open-source-alternatives

http://stackoverflow.com/questions/44588/how-to-convince-a-company-to-switch-their-source-control

+5  A: 

I really like AnkhSVN. It's an open source plugin that you can read more about and download for free here: http://ankhsvn.open.collab.net/

Mickel
It will not work with Express editions.
Deependra Solanky
And it can mess with your VS environment pretty much too, I would avoid that.
RedGlyph
My VS environment sure ain't messy.
Mickel
AnkhSVN is working well for me too.
Brian Gideon
+10  A: 

We left the hell that is VSS to go to VisualSVN and have never looked back.

It's not free (but not expensive), uses Open Source components, is incredibly well integrated to Visual Studio, has a decent community and given the quality/support, we feel it's great value.

EDIT: If you're developing Open Source projects, subject to some additional straightforward criteria you can get an Open Source license of VisualSVN without charge here.

Chris
Oh yes, hell it is.
o.k.w
oh yeah VisualSVN is awesome!
thephpdeveloper
+3  A: 

I love Git and it can be integrated with Visual Studio with this extension

Just tested the extension with VS express and you can add it in as an external tool. Couldn't be easier.

Matt Ellen
+3  A: 

Have you considered Mercurial? I haven't use the Visual Studio plugin for it myself but I gather there is one available. Here otherwise bazaar-vcs.org might be worth checking.

Personally I've used SVN but it scares the heck out of me having the Repository in one place on a Berkeley DB.

10ToedSloth
I tried mercurial a few months ago and found it wasn't mature enough for enterprise development. SVN has a rich set of tools and is widely supported. Really anything is better than the shitshow that is TFS.
James
+4  A: 

If you remove Visual Studio integration condition, Subversion with TortoiseSVN works well. We are using it without any issues. And the beautiful TortoiseSVN icons look good in windows explorer. I will recommend VisualSVNServer as it is easier in Windows environment.

If you are looking for Visual Studio integration VisualSVN is best choice but it is not free. Other alternative is AnkhSVN but it has some issues as I have read over web. I have not used either of them as I am happy with Subversion & TortoiseSVN.

Deependra Solanky
+1: I can't agree more with you, why looking for an integration? It has few or no advantage and you are stuck back with compatibility issues. Each separate tool is good at what they do - let's keep it that way :-)
RedGlyph
+8  A: 

You really can't go wrong with SVN, Mercurial or Git. They each offer their own sets of advantages and disadvantages.

SVN has been around for a long time therefore it is widely supported. You'll find a plethora of clients for SVN. Among others, TortoiseSVN is free and rock solid. Backing up a SVN repository is as simple as backing up a file directory.

Mercurial (like Git) is a distributed SCM that by default doesn't have a central repository like SVN (though you can still have one). The advantage of a distributed SCM is that one can be complete disconnected from the network and still be able to commit code changes. The flip side of this advantage is that it allows developers to not sync up with the main repository for days before having to do a huge merge (you counter this with good developer self-discipline) . Another advantage of Mercurial is that you can push and pull updates from your peer without disturbing the main repository. A common scenario is when 2 developers are working together on a story and they can push/pull from each other while the story is work in progress. Then when the entire story is complete, they can then push to the main repository. My favorite Mercurial client is TortoiseHg and I highly recommend Mercurial: The Definitive Guide by Bryan O'Sullivan. Backing up a Mercurial repository is also as simple as backing up a file directory. If you don't want to worry about maintaining your own Mercurial repository, check out the new Mercurial hosting service offered by FogCreek: Kiln

Jason
A: 

If you still consider spending some money, why don't you take a look at Plastic SCM? It is very easy to use (specially for Windows users) and it's still as powerful as Git/Mercurial and all the new trendy DVCS systems. Check this tutorial http://codicesoftware.blogspot.com/2010/03/distributed-development-for-windows.html

pablo