Version Control System Analysis

Current State

Currently the Jahshaka project stores it's source code in a subversion repository hosted on sourceforge.net. While this is acceptable for the short term, it would be wise to consider all the open source VCSs available.

Distributed Vs. Centralized

One item to consider is going with a centralized versus a decentralized version control system:

Distrobuted Vcs: Why and How by Ian Clatworthy.

Potential Options

CVS

Homepage: CVS

Pros

  • Established option within open source community.
  • Cross platform

Cons

  • Lacks easy method to roll back commits.
  • Centralized development:
    • Requires a high availability centralized server to coordinate development
  • Higher barrier to contribution (command line options less user friendly)
  • Lacks support for branches.

Subversion

Homepage: http://subversion.tigris.org/

Pros

  • Has replaced CVS for most open source projects source code hosting.
  • Considerably more featureful than CVS
  • Much better support for revision controls
  • Currently in use by the Jahshaka project, no migration nessicary.
  • plug-in for ecplise (subclipse) and probably a number of other IDEs
  • Seamless integration into Windows explorer (TurtoiSVN)
  • Widely spread => rich documentation and high share of experienced users
  • trac relies on SVN

Cons

  • Centralized development:
  • Requires a high availability centralized server to coordinate development
  • Higher barrier to contribution (command line options less user friendly)<br>but a number of GUIs available to hide this complexity to<br>a certain degree at least.
  • Branch support is difficult at best.

Git

Wikipedia: Git

Pros

  • Decentralized version control system:
    • Significantly reduces barrier to contribition by allowing individuals to maintain their own branches
    • Merging between branches and creating and applying patches extremely easy
  • Developed by Linus Torvald for mangaing the Linux kernel.

Cons

  • Supported best on Linux/POSIX compient *nixs
    • Windows version is in development, but not as fast and slightly awkward (requires the use of Cygwin).

Bazaar

Homepage: Bazaar

Why Chose Bazaar?

Bazaar Vs. Subversion

Bazaar Vs. Git

Pros

See above links for a more in depth look at Bazaar's pros

  • Decentralized version control system
  • Plugin system allows for interoperation between different Vscs.
  • Cross-platform:
    • Works out of the box on *nix, Mac OS X and Windows.
    • Extremely well tested.

Cons

[Feel free to add any you find]