Subversion vs Git

Subversion vs Git

About

Comparison Subversion vs Git can be interesting for a junior developer. Git and SVN both are version control systems (VCS). Their main purpose is to allow developer track project development progress. With VCS you can revert your project’s code to any version in the past. It’s extremely useful in bug fixing and new feature development.

There are many VCS and today I want to compare probably two most popular of them – Git and SVN.

SVN

Subversion (SVN) is centralized revision control version. Centralized means that you have one central server and many SVN clients installed on developer’s workstations. When a developer commits, code updates are sent to the server immediately.

SVN supports creating multiple branches, but a branch in SVN stores a copy of all files in the project – in large project it can have a very large volume. Because of this, all operations with branches takes a very long time. This is the biggest disadvantage of SVN.

Git

Git has distributed architecture – it contains central and local repositories which exchange updates between each other by sending update requests (Pull and Push). To use it you must create a local repository in your project’s directory. When you make a commit it is stored into local repository and doesn’t go to the central repository. In general – you don’t need a central repository to work with Git – local one is enough.

The main advantage of Git is very fast branches workflow. A branch itself doesn’t contain a copy of the project – it contains only code updates that is why all operations with branches in Git are very fast. This motivates you to create many branches – one branch for one bug (feature). Switching between branches takes few seconds event on very large projects and it raises you productivity dramatically.

Conclusion

I recommend you to use Git as VCS – it opens great opportunities for you and make your workflow very easy and pleasant. However, it would be useful for you to know both Git and SVN basics.

Author: vlad