Knowledge Base/Code and Deploy/Tips & Tricks

Which Revision Control tool should I use?

Portal Admin
posted this on November 09, 2012 15:36

Source Code version control is a safety net that no serious developer should be without. CloudForge offers several tools for revision control: GIT, SVN and CVS

But which is best? 

CVS is outdated, and should only be used if you have legacy requirements that prevent you from moving. And, we recommend you to switch to either GIT or SVN as soon as you can.

So, between GIT and SVN which one is best? Unfortunately, there is no quick answer. They both have advantages and disadvantages so it'll pay to consider how you will be using your repository.

The good news, is that the decision doesn't have to be final -- if you decide to convert your repository, we support several types so the only difficulty is how you change over.

Summary

  • Subversion - central repository, easier to learn, more integral security model, all branches backed up with us.
  • Git - distributed, faster, better for many variations of a system (eg, maybe you keep mobile, windows and mac versions?) and for more open models of development.
  • CVS - old, use Subversion instead unless you need compatibility with old systems

Feel free to discuss your needs with our sales & support staff, we're happy to listen to your requirements and make a recommendation.

Detailed Pros and Cons

Subversion pros:

  • Centralized control, meaning its easier to keep one official history. Good for accountability and security
  • Per folder security, you can grant access to a subfolder
  • Branches are easy and stored centrally, where we take care of backing them up for you
  • Subversion probably has the gentlest learning curve for most people; the basics can be learned in no time and as you progress the different operations like branching turn out to be variations on things you learnt before.
  • Ability to lock files, this is important when you are dealing with binary files like word, images ... etc

Subversion cons:

  • Working offline means you can't commit changes to the centralized repository until you have internet connection, this does not prevent developers working on their local copy
  • Can be slower than git as most operations need to talk to the server, especially when merging large branches
  • Some people might prefer to be able to revise history and only keep their successes not their failures

Git pros:

  • Decentralized model means many operations are faster, and makes offline work more practical
  • More merge options
  • Branching is easier and faster
  • Comes with many tools like 'bisect' that can partly automate the process of finding where a bug was introduced

Git cons:

  • The local copy model means you need to be more careful of backing up your own workstations
  • The large set of commands can be essoteric and present a steeper learning curve
  • Security can be trickier as Git was originally aimed at open source projects, and may over-share for your liking, user has FULL access to your whole repository, there is no per folder / branch security
  • There are no locking for files
  • History can be changed, being able to edit past commits might not leave the strong paper-trail you'd prefer for proof of IP

CVS pros:

  • CVS used to be very popular, so some older dev systems offer integration with it
  • Not many these days... but we still support it if you really, really have to use it.

CVS cons:

  • CVS is old and lacks many features of newer systems
  • Not only is CVS no longer maintained, but Subversion is considered to be "the current replacement for it". The people who used to contribute to CVS now generally contribute to Subversion instead.
  • CloudForge recommends using SVN or GIT instead. But if you have strong legacy requirements, we are here to support it.

Not sure yet? Check out this blog article:

 

 

 
Topic is closed for comments