Repositories / Why use Revision Control?
r7
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.
IRC channel is #svn on irc.freenode.net
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 (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
Git is a distributed revision control system made by Linus Torvalds initially for the Linux kernel.
IRC channel is #git on irc.freenode.net
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.
IRC channel is #mercurial on irc.freenode.net
Pros
- Distributed nature
- Fast
Cons
- Steep learning curve compared to Subversion
Useful links
Facts
- Date created
- Feb 23, 2009