Knowledge base

Repositories / Why use Revision Control?

Many authors think that writing code, zipping it up, and uploading is a fine way to go about addon development, but it's far from perfect.

There are many benefits to revision control:

  • A history is kept of everything. You can know who did what when and to what files.
  • You can revert to a previous revision if things break badly enough.
  • Working with other developers is done in a standard way, you don't have to pass around files to contribute.
  • Concept of branching and merging. You can work on side features or bugfixes in a much more streamlined way.
  • Tag system, allowing a separation between development/alpha versions and your beta/release versions.
  • If you use the automatic packager system, you can release new versions of your addon without waiting for a moderator to approve your file.

The only real downside is a small but overcomeable learning curve.

Which revision control system should I use?


Subversion, a.k.a. SVN, is a centralized revision control system aimed to be a better CVS.

IRC channel is #svn on


  • More polished user interfaces
  • Single repository - simple in that there is one defining place where your repository is.
  • Partial checkouts


  • Poor handling of branching/merging (supposedly fixed in SVN 1.5)
  • Single repository - if you somehow decide where your repository is is not where you want it to be, transferring is a huge chore if not impossible
  • Slow
  • Lose history if try to merge from another repository


Git is a distributed revision control system made by Linus Torvalds initially for the Linux kernel.

IRC channel is #git on


  • Distributed nature
  • So blazingly fast you won't even notice it's working


  • Lack of good user interfaces, especially for Windows
  • Steep learning curve compared to Subversion


Mercurial, a.k.a. Hg, is a distributed revision control system.

IRC channel is #mercurial on


  • Distributed nature
  • Fast


  • Steep learning curve compared to Subversion