Saturday, 26 March 2016

Open source Version Control Systems









Centralized version control :
 Only one master copy of the software is used. 
Example : SVN, CVS

Distributed version control : There isn’t one centralized code base to pull the code from. Different branches hold different parts of the code.
Example : Git, Mercurial, Bazaar, Monotone, Fossil


CVS
  • Very simple system for making sure files and revisions are kept up to date
  • Earlier technology
  • Still quite useful for backup and sharing files
  • Tortoise CVS is a great client for CVS on Windows
  • Many IDEs has plugins for CVS like : Xcode (Mac), eclipse, NetBeans and Emacs


SVN
  • Widely used
  • Most open-source projects use Subversion as a repository (SourceForge, Apache, Python, Ruby etc.)
  • Many clients available : Tortoise SVN for Windows, Versions for mac, Xcode for Apple etc.


Git
  • New rising version control systems
  • Fast and efficient system
  • Fast branching and merging operations 
  • Not as easy to pick up as CVS or SVN, so it’s much harder to use for a beginner
  • Initially developed by Linux kernel creator Linus Torvalds
  • Every Git clone a complete repository and mirror of the original repository
    • Clone contains the complete history of changes and full revision tracking facilities, and is not tied to a central server
  • Many major open source projects uses or migrated to Git to power their repositories
    Example
    : Linux Kernel, WINE, Fedora, Rails, php etc.
  • TortoiseGit is a GUI for using the Git SCM on Windows.
  • Github powered the usage of git by providing beautiful front end.


Mercurial
  • Extremely fast , high performance and scalable 
    • used to handle large distributed projects
  • Much simpler system than Git 
  • Less functions to learn and similar to those in other version systems
  • Also comes with a standalone web UI and extensive documentation
  • TortoiseHg provides a GUI and explorer for Mercurial SCM


Bazaar
  • offers a very friendly user experience
  • supports many different types of workflows : solo / centralized / decentralized
  • Easy to modify and setup
  • allows users to commit their own branches of source code for particular application



LibreSource
  • Web portal used to manage collaborative projects. 
  • based on Java/J2EE and is more a set of visual collaborative tools to help facilitate projects and teams
  • Collaboration hub for project development. 
  • has built-in features such as Wiki pages, forums, trackers, Synchronizers, Subversion repositories, files, download areas, drop boxes, forms, instant messaging and more 
  • provides tools which do not have a big learning curve




Monotone
  • Monotone places higher value on integrity than performance. 
  • Simply downloading the initial repository can take time due to the extensive validation and authentication required. 
  • Fairly easy to learn if you’re familiar with other CVS systems
  • It can import previous CVS projects
  • Not quite as popular as other CVS












Fossil
  • offers version control, bug tracker and technotes
  • uses HTTP, HTTPS, or SSH
  • Repository and its contents are stored in SQLite database
  • Built in web interface in a stand-alone executable



SouceJammer

  • 100% written in Java
  • Source control and versioning system
  • consists of 2 components :
    • Server side : maintains files and version history, handles check-in/out etc.
    • Client side : manages files at client-side and makes requests to server




No comments:

Post a Comment

Note: only a member of this blog may post a comment.