The difference between distributed and non-distributed version control

version control

What are the internal structural differences between distributed (e.g Git & Mercurial) and non distributed (Subversion) version control?

The question came from a discussion group where a tool was interacting with CVS and it was argued whether it would be easily ported to other systems or not.

Best Answer

Main internal structural differences I can think of:

  1. On distributed you get all the previous versions with each pull/get
  2. On distributed you don't have to phone home when you are about to start editing a file.
  3. On distributed you will have to have all the functionalities of merging, checking in, etc, because each instance is a full-featured repository

As far as a client goes, a non distributed source control client would be ok if it could do the basic tasks of: getting a specific version, phoning in to tell that you are working on a file, and sending back the changes after looking/resolving any conflicts

Related Topic