What is Version Control?
Version control is a system that help you track changes you make in your code over time. By using a version control system, you can create snapshots of your code by creating branches or copies of it and isolating the code base from the main or central repository. Every change made to the source is tracked, along with who made the change, why they made it, and references to problems fixed, or enhancements introduced, by the change. This makes it easier to make changes and enhances the overall quality of the code.
Without version control, you may keep multiple copies of code on your computer or may change or delete a file in the wrong copy of code, potentially losing work. Version control systems solve this problem by managing all versions of your code but presenting you with a single version at a time.
The choice of Version Control System
Subversion, GIT, TFS (Team Foundation Server) etc., all have strong source code management capabilities and has been adopted strongly by Salesforce development teams. While most teams still figure out what is the best version control tool for them – there is no direct answer for the same rather a combination of factors that drive the version control system.
GIT – is cloud based version control system enabling distributed development, off-line commits with individual repositories and is preferred choice in case of development teams distributed across the globe. GIT also is favored for its advanced merge capabilities, parallel work streams etc.,
Subversion – has been a preferred choice for development teams for its long existence, active community support, but it needs server installation on the network and is suitable for development teams that are connected on a network.
TFS – Team Foundation Server has been used by development teams which have a background of .Net development and it also has strong version control capabilities built into it.