I thought i’d write about my impressions on selecting the right open-source version control
for your project. Firstly, I think both Subversion
are excellent choices and the difference isn’t that great for you to be making a major error in selecting one over the other. Having said that, it is pivotal that we do understand what each of the options do, to better equip ourselves with which philosophy we would appreciate more. I won’t be going into any low-level detail, and will recommend some great O’Reilly
I’ll start off first with Git… Unlike Subversion, Git is a distributed version control system, and like most things in life, there is no clear cut one-fits-all solution. So, depending on how you work with your project, one may be more suitable than the other.
The code’s redundant clone/copy repository is equal to the number of users working on the project,which includes history and metadata, and as the nature of not being centralised goes, it means that if the central server goes down, you can recover from one of the users, taking their local copy. Clients communicate over the network to sync their files and associated history with other clients, which is the biggest difference with Subversion, where everything is central and users take what they need off there.
Another thing to note is that depending on the operating system you are working on, you may choose Subversion over Git. Git does not play nice on Windows unfortunately, and is more suited towards Unix/Mac users. The same can be said for Subversion, except there are great GUI interfaces that work on all operating systems.
Git seems to handle branching much better than Subversion, especially where conflicts/merging are concerned, where the tedious manual comparison is required with the latter.
Git also excels when it comes to processing speed and performance, where you work distributively, you have everything local and therefore do not need to depend on network ‘latency’, for everything from committing to checking out the history/log files.
Whilst Subversion is by far the most popular version control system, the trend over the past three years has shown that many developers are indeed migrating to Git. Besides performance, many experts point to the excellent debugging and diffing/merging that comes with Git. But it’s up to you, I use both, in the office I use Subversion and I am slowly moving my personal projects to Git.
From here, I would recommend you look at reading one of the following (or both) books by O’Reilly:
Pragmatic Guide to Subversion, First Edition
Subversion is the most popular open-source version control system on the planet. Development teams-big and small, enterprise and open source-use this fast, feature-rich tool daily. Pragmatic Guide to Subversion presents the 48 essential tasks you nee…
Publish Date: November 2010
Pragmatic Guide to Git, First Edition
Need to learn how to wrap your head around Git, but don’t need a lot of hand holding? Grab this book if you’re new to Git, not to the world of programming. Git tasks displayed on two-page spreads provide all the context you need, without the extra fl…
Publish Date: November 2010