Tuesday, October 6, 2009

Distributed Versioning

The version control systems are generally rated as follows based on their usability.
  1. Visual Source Safe (Low)
  2. CVS
  3. SVN
  4. Git (High)

  • Visual Source Safe doesn't allow "Concurrent Access". Only one developer can edit a file at a time. Hence, not suitable for a large team with frequent commits.
  • Some times gives weird error messages, making the system unstable.
  • Allows "Concurrent Access". Multiple developer can edit the file and system has the capability to merge the changes. If there is a conflict, developer is informed to resolve it.
  • Commits are not atomic. The changes are maintained at the file level and not at the repository level. For eg: if we commit five files at once and want to revoke it, it has to be done individually for each files.
  • Commits are atomic. Committed files can be revoked together. Repository maintains the check-ins.
  • Cannot view the history of the file, when not connected to the server.
Git (Distributed Revision Control System (DRCS))
  • Along with the master repository, every developer will have a copy of the repository. Hence, even in disconnected mode, the developer can see the history of the files. The developer can apply the patch to the master repository.
  • The patch can also be sent to the peer, which makes it excellent to work in a distributed team.
In a centralized team, SVN is a good choice as version control and Git is ideal for the distributed teams.

No comments: