+1  A: 

SVN would be great, as long as you use locking (normally the server has no idea what clients are doing by default)

Perforce might be a nice one to look at which does this more by default.

Both have VS integration, SVN especially.

John
A: 

If you want good Visual Studio Integration, then check out Microsoft Team System. You didn't specify if you wanted free or commercial or how critical Visual Studio intergration was.

fuzzy lollipop
A: 

git will do almost all of it. Not sure about integrating it with Visual Studio though. there might be a plugin for that. Reasons:

  • No central server needed. If you want one, you can have one, but it's not necessary
  • You can push/pull changes to the others at will.
  • Each of you can have your own local branches, and push only the ones you need to each other. Branching/merging is easy enough to do branch-per-task. Then push just that task to a co-worker if needed.
  • Unlike SVN, only one directory is needed for git, in the top level of the directory structure.
  • git stash rocks for when you have changes in your current branch, and need to switch to another for a while. This is one of those things you don't miss until you don't have.
  • Merges are awesome.
Jim Barrows
So why suggest it? Just to evangelise?
John
Visual studio is listed as supported at wikipedia (http://en.wikipedia.org/wiki/Comparison_of_revision_control_software#User_interfaces) and http://swik.net/VisualStudio+git have some links with positive user experiences.
hlovdal
@john. several reasons. 1) It's 90% there, and has great command line support. 2) I don't deal with MS products, and so would have no reason to know 3) I'm not all knowing.
Jim Barrows
But since other well known and more established tools exist, what's the advantage of GIT in this case?
John
+1  A: 

SVN, provided that you explicitly lock the files. This is not by default, but you can easily lock the file via SVN commands or via TortoiseSVN.

VisualSVN provides the Visual Studio integration.

Patrick
+1  A: 

Team Foundation Server fits all of those.

marr75
TFS is a bit spendy for 3 devs (in terms of setup/maintenance time *and* cost).
Seth
Agreed. I can't think of another system that lets you see who else has the file checked out, however. I don't think this feature is probably as necessary for only 3 devs though, between locks, merges, and just asking the other 2 guys what they're working on you should be covered.
marr75