The first core reason to switch from SVN to GIT and DVCS
SVN Remote Depositories are slow and prone to the failure of networks. GIT and DVCS are faster and the failure of remote networks is not an issue because a local repository with local history is used.
SVN Data files are cumbersome and bloated and therefore difficult to work with.
GIT improves Code Quality because the decentralized repository allows users to add validation and workflow rules. Pull requests, code reviews, voting systems along with the critical authorization systems add a layer of checks and balances on code quality before the merging with the master repository. This is a huge advantage over SVN.
The Functionality of GIT is far superior to SVN. GIT fully supports Rebasing, merge algorithms and conflict resolution. The features of SVN are inferior or nonexistent in every way.
Stashing is an attractive feature of GIT that SVN simply does not have the ability to switch from working one part of a project to another or start a new one, – to pause work, save any modifications locally and then resume later, prevents the conflicts that usually arise with SVN. (edit both SVN and CVS have copied this feature by bolting on an inferior (in our view) ’local commit’ option).
GIT is constantly updated adding new features whereas SVN is slow, always playing catch up (which they have not yet come close to matching GIT – the undisputed market leader).
With GIT there is complete support for deleted and renamed files with a clear history of any changes made. This allows for continuous file change management, which is just not practical with SVN.
In the interest of balance it is only fair to mention the failures of GIT, these include:
No collaboration feature
GIT workflows are limited; one example of this is patch files
For Enterprise use GIT is limited to small teams. For larger teams GITs security, collaboration and workflow features are just insufficient.