view slides.rst @ 1:0c3b42165692

More work on the slides.
author Brian Neal <bgneal@gmail.com>
date Tue, 08 Nov 2011 20:52:15 -0600
parents 2fcab9db4f47
children 802024c24c4e
line wrap: on
line source
.. role:: strike
    :class: strike

Introduction to Distributed Version Control with Mercurial
==========================================================

----

(Sublimal Message)
==================

(We should be using this at work... )
-------------------------------------

(Seriously... )

----


# whoami
========

Brian Neal <bgneal1@rockwellcollins.com>

Started at Rockwell Collins in July 1999

Perhaps you've recognized me from the following programs:

- UMS (July 1999 - Spring 2000)
- Surgical Strike - (Spring - Fall 2000)
- JTRS 2B - (Fall 2000 - Summer 2001)
- SCAMP SEP - (Summer 2001 - October 2004)
- TTNT (January 2005 - Present)

----

Brief History of Version Control Tools
======================================

First Generation
----------------

- No networking!
- Concurrency method: locks
- Examples:
  
  - SCCS - 1972
  - RCS - 1982 

----

Brief History of Version Control Tools
======================================

Second Generation
-----------------

- Client/Server networking; CVCS (Centralized Version Control)
- Concurrency method: merge before commit
- Examples:
  
  - CVS - 1990
  - IBM Rational ClearCase - 1992
  - Visual SourceSafe - 1994
  - Perforce - 1995
  - SVN - 2000

----

Brief History of Version Control Tools
======================================

Third Generation
----------------

- Distributed networking; DVCS (Distributed Version Control)
- Concurrency method: commit then merge
- Examples:

  - Bitkeeper - 2000
  - Darcs - 2003
  - Monotone - 2003
  - Git - 2005
  - **Mercurial** - 2005
  - Fossil - 2006
  - Bazaar - 2007
  - Veracity - 2011

----

What is a CVCS Again?
=====================

.. image:: images/cvcs.png

----

What is a CVCS Again?
=====================

Basic SVN commands:

- add, remove, copy, move, mkdir
- checkout, commit, update, revert
- merge, resolved, diff
- status
- lock, unlock

----

So what's a DVCS look like?
===========================

.. image:: images/dvcs.png

All repositories are peers. By convention only, one repository is designated the master.
It is possible for all peers to exchange changes.

----

So what's a DVCS look like?
===========================

Mercurial (hg) vs SVN commands:

- add, remove, copy, move, :strike:`mkdir`
- :strike:`checkout`, commit, update, revert
- merge, resolve, diff
- status
- :strike:`lock, unlock`

Additional "distributed commands":

- clone, push, pull
- incoming, outgoing
- serve