I use to work with Visual Studio + C#, and have been using svn before, but not currently, so I want to put my code again on source\'s control.
Recently I heard about
Git appears to now be the industry standard for version control, replacing SVN and CVS etc. Git from a user perspective gives rise to more features and helps to manage code changes better than SVN will. It's also easier to set up repositories thanks to sites such as GitHub and BitBucket rather than needing your own server.
Git is easy to run in the command line (far more helfpul commands than SVN). There's also a range of good GUI programs which help to provide a nice front-end to your Git repo, GitHub Desktop and SourceTree to name a couple.
Here my personal experiences with git vs. svn:
Especially when merging, git's extensive use of stored history (across renames and merges) comes handy to make much better informed decisions leading to less conflicts.
Having a complete, cryptographically verifiable integrity chain through the repository helps build trust in the underlying systems, or detect when they fail. On the downside it can be complicated to create "clean" patches. Having a proper workflow helps.
Finally, git works locally by default, giving it a unbelievably huge boost in contrast to SVN which must go to the central repo for almost any operation.
Software: See this question, there are several standalone GUIs for working with the repo, history browsers and shell extensions.
Studio Plugin: GitExtensions has a Visual Studio 2005 and 2008 plugin.
Documentation: Start with the GIT User's Manual. There are more links to tutorials and books on git-scm.com.
As others had pointed out git is faster and more stable. It's distributed vs centralized, in svn if you mess the central repo you lose everything. In my experience there are less problems when you merge code with git.
There is only one thing that I don't like. It's that you can't download a part of a repository with git. If you just need one folder, you'll need to download all the repo. You can do this with svn.
I'm not sure what the stability of TortoiseGIT is at this stage, and when you're talking about something that integrates that intimately with Explorer this is an important consideration. Can anyone speak to this?
Also bear in mind that git is not the only choice if you are looking for the benefits of a distributed VCS. Git has the twin virtues of being very powerful and also very complicated. You might find another DVCS such as Bazaar or Mercurial an easier transition to reap the benefits of a distributed system. Both have tortoise interfaces in development but again, I'm not sure of their stability. (Bazaar's is included in their windows package though, so you would assume it is at a reasonably good stage.)
A quick search has also turned up VisualHg and Bzr-VisualStudio although I have no idea of their readiness to be used in anger. Caveat emptor.
TortoiseGit is available - just Google it (I can't remember the URL) And:
Being distributed, you don't need to be connected to a server all the time, just work locally and push
when you need to.
It is very quick and doesn't use much bandwidth
And, the classic, if it's good enough for Linus, it's good enough for you :)
Update: Link to TortoiseGit
I haven't used git, but I used svn and bazaar (which is similar in philosophy to git), so I can answer you in general terms.
The advantage of the so called distributed version control systems (DVCS) is that the repo and the code are together on your machine, and you are not dependent on a remote repo for operations. Every developer has a "branch", his own copy of the repo to which he commits to. You can commit, revert, check previous revisions, without being connected to the net. Officiality of repository is granted by virtue of human agreement, not technical setup. In svn, you only have one repo, which is _the_repo_ you and all the other people commit to. In DVCS, you commit to your own repo, and another developer to his own repo, and each of you can push his modifications to the officially designed repo when he pleases.
Another clear advantage is that operations in a DVCS are fast, blazing fast. svn becomes incredibly slow when you start having a lot of stuff in your repo. This can become annoying very soon.
On the minus side, DVCS are more difficult to use, but you can use a DVCS as a centralized VCS if you want.