2

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.

Mark Booth
14.4k3 gold badges42 silver badges79 bronze badges
asked Feb 13, 2012 at 19:23
3
  • 1
    There is a nice introduction to Mercurial by Joel Spolsky, check out the Subversion Re-education chapter. Commented Feb 13, 2012 at 19:28
  • What do you mean by internal structural difference? Commented Feb 13, 2012 at 19:29
  • Don't you just love Wikipedia Commented Feb 17, 2012 at 22:37

1 Answer 1

2

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

answered Feb 13, 2012 at 19:58
6
  • 2
    There are non-distributed VCSs that don't have to phone home when you start to edit, such as CVS and SVN. Commented Feb 13, 2012 at 22:25
  • You mean it's not the default, sure, but a client has to have the function. Commented Feb 17, 2012 at 16:27
  • 1
    Why? Here, I've got the parts of the codebase I need checked out from Subversion. When I want to edit a file, I do so. When I think it desirable, I merge in changes from the repository, and I do that regardless of what's changed. The only time I communicate with the repository that's related to editing files is when I check them in. Commented Feb 17, 2012 at 17:53
  • Again, a client has to have the function. It's not really a centralized repository unless you can lock the file you are working on. On svn it is optional, but it's there, and if you prefer to work decentralized, you better use a system that is decentralized. Commented Feb 17, 2012 at 18:57
  • I am completely failing to understand. There is one SVN repository here at work, so it has to count as centralized. If it were distributed, there'd be repositories all over (that weren't backups or mirrors). If the lock functionality was removed, it wouldn't affect where I work in the least. Therefore, a SVN-- without locking would be very useful, and I don't see how it would be anything but centralized. Commented Feb 17, 2012 at 19:41

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.