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)

Cons:
  • 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.
Pro:
  • 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.
Cons:
  • 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.
Pro:
  • Commits are atomic. Committed files can be revoked together. Repository maintains the check-ins.
Cons:
  • Cannot view the history of the file, when not connected to the server.
Git (Distributed Revision Control System (DRCS))
Pro:
  • 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: