Siddesh BG's Build Release Config mgmt Blog

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Friday, 9 March 2012

Difference between centralized version control (CVCS) and distributed version control systems (DVCS)

Posted on 08:46 by Unknown

1) Repository
    CVCS: Have a single server that contains all the versioned files and metadata 
    DVCS: Each users working copy of the codebase is a bona-fide repository.

2) Checkout
   CVCS: A number of clients check out files from central repository 
   DVCS: Clients don’t just check out the latest snapshot of the files: they fully mirror the repository

3) Tracking latest revision
   CVCS: Everyone knows to a certain degree what everyone else on the project is doing. The trunk usually has the latest revision.
   DVCS: It is not plainly obvious.


4) Administration
   CVCS: Administrators have fine-grained control over who can do what. Here's only one place to backup and manage storage.
   DVCS: No central control. Allows participation in projects without requiring permissions from project authorities.

5) Risk
     CVCS: The single point of failure that the centralized server represents
     DVCS: If any server dies, any of the client repositories can be copied back up to the server to restore it. Every checkout is a full backup of all the data

6) Working offline
    CVCS: Couldn’t perform common operations like commits, viewing history, etc
    DVCS: Allows users to work productively even when not connected to a network.

7) Communication
    CVCS: Every operation need to communicate with server.
    DVCS: Communication is only necessary when pushing or pulling changes to or from other peers.

8) Speed
    CVCS: Common operations (commits, viewing history, revert) needs to communicate with server, hence comparatively slower. Initial checkout is faster compared to DVCS.
   DVCS: Common operations are fast, because there is no need to communicate with a central server.  Initial cloning of a repository is slower because all branches and revision history are copied.

9) Private branches
   CVCS: Private branches are supported if not restricted by admins
   DVCS: Allows private work, so users can use their revision control system  for early drafts they do not want to publish. 

10) Locking
    CVCS: Binary files can be locked to prevent changes from peers to avoid conflicts
    DVCS: Lack of locking mechanisms causes issue while changing binary files such as graphic assets.

11) Workspace size
    CVCS: Minimal space is needed since only required files are checked out from server.
    DVCS: Working with a lot of binary files ( image files ) requires a huge amount of space while checkout. No privilege's to pull selective files from repo.

12) Examples
   CVCS: Perforce, SVN, CVS and clearcase
   DVCS: git, mercurial, bazar, darcs


Emulating centralized VC in Distributed VC
- A distributed VCS can emulate a centralized one by pushing changes to one designated upstream repository after every local commit.
- Code from disparate repositories are merged based on trust i.e. historical merit or quality of changes
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in | No comments
Newer Post Older Post Home
View mobile version

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Solution to Project Euler Problem 10 - Find the sum of all the primes below two million
    http://projecteuler.net/problem=10 Problem The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17. Find the sum of all the primes below two mi...
  • Fortify scan automation steps for analyzing c/c++ code (Makefiles)
    I wrote in my previous blog about installing and configuring Fortify client. This blog presents standard steps to automate fortify scan for ...
  • Posting a JIRA bug using Perl Mechanize
    Perl provides modules which can be used as command line browser to automate tasks dependent on web pages. Among them LWP and mechanize are i...
  • jenkins error: java.io.IOException: Authentication method password not supported by the server at this stage
    When I tried to add a node to jenkins/hudson using ssh as launch method, the authentication keeps on failing with the below error. [12/15/11...
  • Unable to resolve target system name - a DNS problem
    I was not able to ping to any machines from my Windows 2003 server. I did following steps to debug & resolve the issue, which was relate...
  • Installing and configuring Fortify on Linux and Windows machines
    Installing Fortify on Linux (RHEL 5 32 bit) Download Fortify archive Fortify-360-2.6.5-Analyzers_and_Apps-Linux-x86.tar.gz and extract it to...
  • Perforce - can't edit exclusive file already opened
    In perforce, whenever a binary file like doc, xls or ppt files are checked out, it is opened in exclusive lock mode. So no other person can ...
  • Perforce and cygwin
    Are you a command-line freak ? Do you want your automated shell scripts to run on Windows ? Do you wish to work with Perforce commands on Cy...
  • Using BUILD_LOG_REGEX in jenkins email notification
    Jenkins provide 'Email-ext' plugin, which  allows to configure every aspect of email notifications. One of my requirement is to send...
  • 0509-036 Cannot load program p4 because of the following errors
    Here is the full description of error ............ bash-3.00# p4 info exec(): 0509-036 Cannot load program p4 because of the following error...

Categories

  • AIX
  • AIX ssh
  • ANT
  • apache
  • appliance
  • awk
  • branching
  • build-failures
  • cgi-perl
  • code-signing
  • commands
  • continuous Integration
  • cvs
  • cygwin
  • DNS
  • Drupal
  • EPM
  • euler
  • Fortify
  • hadoop
  • hpux
  • html
  • InstallShield
  • iptables
  • iso
  • jenkins-hudson
  • Jira
  • kiwi
  • linux
  • Makefile
  • maven
  • Miscellaneous
  • mysql
  • nexus
  • NFS
  • package
  • Perforce
  • Perl
  • php
  • rbuilder
  • rpath
  • rpm
  • rsync
  • Solaris
  • ssh
  • SuseStudio
  • tinderbox
  • unix
  • Visual studio 2008
  • vmware
  • war
  • webserver
  • wget
  • windows
  • xterm

Blog Archive

  • ►  2013 (12)
    • ►  December (1)
    • ►  July (2)
    • ►  April (2)
    • ►  March (2)
    • ►  February (3)
    • ►  January (2)
  • ▼  2012 (43)
    • ►  December (2)
    • ►  November (1)
    • ►  October (4)
    • ►  September (7)
    • ►  August (5)
    • ►  July (4)
    • ►  June (2)
    • ►  May (3)
    • ►  April (4)
    • ▼  March (3)
      • Perforce sync is slow - Checklist for debugging
      • Difference between centralized version control (CV...
      • Comparison of several SCM tools
    • ►  February (1)
    • ►  January (7)
  • ►  2011 (23)
    • ►  December (4)
    • ►  November (9)
    • ►  October (4)
    • ►  September (1)
    • ►  June (2)
    • ►  May (1)
    • ►  April (1)
    • ►  March (1)
  • ►  2010 (15)
    • ►  December (2)
    • ►  November (1)
    • ►  September (3)
    • ►  April (1)
    • ►  February (6)
    • ►  January (2)
  • ►  2009 (28)
    • ►  November (5)
    • ►  October (3)
    • ►  September (2)
    • ►  August (1)
    • ►  July (1)
    • ►  June (5)
    • ►  May (3)
    • ►  April (1)
    • ►  February (2)
    • ►  January (5)
  • ►  2008 (20)
    • ►  December (6)
    • ►  November (3)
    • ►  October (1)
    • ►  September (1)
    • ►  July (8)
    • ►  June (1)
Powered by Blogger.

About Me

Unknown
View my complete profile