![Svn Vs Git Svn Vs Git](http://learnitworld.com/wp-content/uploads/2015/09/git-vs-svn.png)
Svn Vs Git
For a growing team it is always a problem which version control system they should use to handle their growing project and team needs. Which is more flexible, easy to manage code and deploy code.
Currently, we have many version control systems which developers/Teams are using to manage code and deploy code. The most popular version control systems are:
- Git
- SVN
- CSV
Here we will be comparing Svn and Git. and which is feasible to which type of project needs.
Lets start with how Git and Svn repository is architectured.
Git and Svn Repository architecture
Main difference between Git and Svn repository is that Git has its repository distributed and while Svn have it’s repository centralized.
Git as its repository is distributed every developer checking out code from central repository have their own cloned repository on their system. This means any developer can work and do all operations like creating a new branch, make changes and commit their code and have access to revision history without having any access to internet. Git also help us working in distributed team, as if a project have more than one team and they are located in different cities/countries. And each team can have their own repository system and after completion of any task they can merge their master branch to main repository master and have all integrated code ready for deployment.
Git and Svn metadata
A source control to manage revision history and all information about the repository status is stored in metadata. which is stored in files. Git stores it’s metadata in .git folder, while svn stores it’s in .svn folder. and if we compare both folders you will find considerable difference in size and .git folder is light in size and it has only single folder to manage all information about repository like, branches, tags and revision histories.While svn have it inside each sub directory and it’s quite heavy is size.
Git and Svn Branch system
Git branching system is different from Svn as, In Svn it’s branch is just another copy of code in a physical folder. and managing these physical folder(branches) and merging them is time taking and very annoying.
While in Git branches are just a reference link to the point when it was created and it doesn’t exists physical just a reference point. and it’s easy to manage, like creating branch, switching to it. merging is very fast and time saver.