Git vs Subversion
From WikiVS, the open comparison website
Contents |
[edit] History
Subversion (SVN for short) was created by CVS developers to be a replacement for, and improvement on, CVS.
Git was created by Linus Torvalds to replace BitKeeper as the version control system for the Linux kernel.
[edit] Architecture
Git is a distributed version control system. This does not mean that centralized development is impossible; a centralized development model would be possible just by taking one Git repository and canonicalizing it.
Subversion is a centralized version control system. SVK was written as an extension of Subversion to provide distributed version control functionality.
[edit] Licensing
Git is distributed under the terms of the GPL, a copyleft license.
Subversion is distributed under the terms of the Apache License, a copyfree license.
See Copyfree vs. Copyleft for more about these licensing options.
[edit] Performance
Git is faster than vanilla Subversion for local commits because all repository files are on the local drive, though SVK provides local commit capability as well.
[edit] Features
[edit] Hooks
Both Git and Subversion support hooks.
[edit] Branching
Git was created with branching in mind, to encourage branching and experimenting with the code base. Branches are essentially a way to refer to a commit, since the commits are arranged using a DAG.
One of the reasons for Subversion's creation was to provide better branch and merge capability than CVS. SVK provides distributed branch and merge capabilities on top of the centralized Subversion model, while svnsync provides read-only cloning capability to cover certain distributed branch benefits without having to use SVK.
[edit] Popularity
Subversion is the most popular open-source version control system in use. It is widely used in open-source projects as well as within proprietary software companies. Even in cases where open source projects have adopted other version control systems, many of them maintain parallel repository access via Subversion as well.
Git is quickly gaining popularity in the open source environment. Software vendors, however, often do not use Git for their version control system because of its distributed nature; software companies want to maintain a central repository of their code-base, and consider the ease with which independent branches can be created unnecessary or even undesirable. Proprietary software development shops also tend to balk more at the GPL distribution terms of Git than at Subversion's more liberal licensing terms.
[edit] Links
[edit] Pro-Git
Tech Talk: Linus Torvalds on git (video)
del.icio.us
digg
Facebook
Furl
reddit
Slashdot
Twitter