Understanding Distributed Version Control Systems

Distributed Version Control Systems (DVCS) such as Git and Mercurial have rapidly gained popularity over recent years. This course explains the basic principles behind DVCS, and explains the benefits of using them in a wide variety of common development scenarios.
Course info
Rating
(348)
Level
Intermediate
Updated
Jan 27, 2014
Duration
2h 57m
Table of contents
A Brief History of Version Control
DVCS Basics
DVCS for Single Developer Projects
DVCS for Open Source Projects
DVCS for Commercial Projects
Taking it Further
Description
Course info
Rating
(348)
Level
Intermediate
Updated
Jan 27, 2014
Duration
2h 57m
Description

It's likely that you will already have heard of Distributed Version Control Systems such as Git, but what are they and how do they work? This course sets out to answer the questions of what is going on under the hood, and to demonstrate the new workflow you would need to learn if you started using it. We look at DVCS from the perspective of three different development scenarios - single developer projects, open source projects, and commercial projects. This course includes lots of diagrams that will help you understand the "DAG," which is the way DVCS store their history, and there are demos of using both Mercurial and Git. We also see how you can make use of repository hosting from sites such as BitBucket and GitHub.

About the author
About the author

Mark Heath is a software developer based in Southampton, England, working for NICE Systems as a software architect creating cloud based digital evidence management systems for the police. He is the creator of NAudio, an open source audio framework for .NET.

More from the author
More courses by Mark Heath
Section Introduction Transcripts
Section Introduction Transcripts

DVCS Basics
Hi, my name is Mark Heath, and in this module we'll be looking at the basic principles and operations of Distributed Version Control Systems. We're actually going to start off by looking at what a DAG is. DAG stands for Directed Acyclic Graph, and once you understand what one of these is, it will really help you to see what's going on with Distributed Version Control. Then we're going to run through each of the basic operations of a Distributed Version Control System, Clone, Commit, Push, Pull, and Merge. And we're also going to look at a slightly more advanced topic of the different ways that you can do Branching with a Distributed Version Control System, and we're going to look at two different ways that you can do this using Clones as Branches and using Labels to identify Branches.

DVCS for Single Developer Projects
Hi, my name is Mark Heath, and in this module we'll be looking at how we can use Distributed Version Control Systems on single developer projects. We're going to start this module off by looking at what the benefits are for using Distributed Version Control on your single developer projects, and I'm hoping to persuade you that it really does make sense to use it on all your projects. It's so simple to set up that you never really need to work without version control again. Then I'm going to do a demo and show you how to use a Distributed Version Control System to set up your repository and how to make changes and commits to it, and for this demo I'm going to be using Mercurial. Now we'll also be showing the use Git later on in this course, but I want to show you that the principles of Distributed Version Control are the same no matter which actual implementation you're using. And in fact, as we go through this demo, I'll be explaining what the equivalent Git commands are, and you'll see that there's a very close correspondence. For every command in Mercurial, there's a very similar one, often with exactly the same name in Git. And also, at the end of our demo I'll be showing how Distributed Version Control Systems make it really easy for us to backup our work to an offsite private repository. So all that source code sitting on your computer that's currently not under version control at all, you can have a very quick and easy way to keep it backed up and safe.