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.

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.


  • More polished user interfaces
  • Single repository
  • Partial checkouts


  • Poor handling of branching/merging


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


  • Distributed nature


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

Torvalds' talk on git


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


  • Distributed nature


  • Steep learning curve compared to Subversion