WowAce.com Knowledge base

Repositories / Why use Revision Control?

r3

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

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

Pros

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

Cons

  • Poor handling of branching/merging
  • 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

Git

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

Pros

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

Cons

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

Mercurial

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

Pros

  • Distributed nature
  • Fast

Cons

  • Steep learning curve compared to Subversion