I was introduced to source control in the worst possible way: through the Visual SourceSafe. I was using it for 5 years in my workplace. As complexity of our development rise, VSS showed more and more of its problems. When I saw all the problems it had, I've put all of my home projects into Subversion and later introduced it in the workplace. After a four years of using SVN as my primary SCS, I stared using Mercurial for my home projects but I wasn't feasible to push it in the workplace as SVN worked fine. When I switched jobs, HG became my main SCS. All in all, 5 years of VSS, 5 years of SVN and 4 years of HG.
Today I tried the Team Foundation Version control which replaced Visual SourceSafe as the default SCS in MS Visual Studio, just to see how it looks, as I hear more and more good things about it. Although it includes project management features, I was primarily interested in source control part, especially in:
- source control features: versioning and merging
- tooling: integration with visual studio
I was positively surprised with TFS when we tried to merge code changes, that went well. Unfortunately, as a whole, it has some quirks I can't tolerate:
- Commands are scattered over solution explorer, team explorer, source control window and some actions even open in browser.
- It doesn't respect my folder hierarchy. I added a shared project to the solution from the folder outside the solution. That worked on my computer but other team members got a copy of the project inside the solution's folder.
- It is a subjective difference, but unlike with HG, I don't feel like I'm in control of my source. It feels more like source control hope instead of source control system.