WowAce.com
Home
Addons
Authors
Forums
Knowledge base
Paste
Site issues
Sign in
WowAce.com knowledge base
Repositories/Why use Revision Control?
r9
Source
Markup:
*
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 === 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 == * [[http://blip.tv/file/1114793/|CLTV42: EuroPython2008 - Tommi Virtanen: Version Control for Du^H^HDevelopers]] * [[http://video.google.com/videoplay?docid=-2199332044603874737|Torvalds' talk on git]] * [[http://subversion.tigris.org|Subversion homepage]] * [[http://git.or.cz|Git homepage]] * [[http://selenic.com/mercurial|Mercurial homepage]]
Markup Type:
*
The type of markup for this entry.
Click here for details
.
WikiCreole
BBCode
Safe HTML
Plain Text
Markdown
Textile
Curse Wiki (Deprecated)