progressive revision control

21
Progressive Revision Control A Comprehensive introduction to DVCS Presented by Ivan Yatskevich Minsk, 2009

Upload: collabock

Post on 14-May-2015

833 views

Category:

Technology


0 download

DESCRIPTION

A Comprehensive introduction to DVCS

TRANSCRIPT

Page 1: Progressive Revision Control

ProgressiveRevision Control

A Comprehensive introduction to

DVCS

Presented by Ivan YatskevichMinsk, 2009

Page 2: Progressive Revision Control

Overview

1. A short history of revision control

2. Definition of DVCS

3. Real world DVCS usage (practice)

4. Download and installation

5. Tools and integration

6. Conclusions

Page 3: Progressive Revision Control

History

1972

1980's

1990's

2000

2005

SCCS

RCS, CVS

TeamWare, BitKeeper

Subversion

Git, Mercurial

Page 4: Progressive Revision Control

Definition

Distributed

Version Control System

Page 5: Progressive Revision Control

Definition

?

Page 6: Progressive Revision Control

Definition

!

Page 7: Progressive Revision Control

Definition

Decentralized

Version Control System

Page 8: Progressive Revision Control

Definition

Alice's workingcopy

Bob's workingcopy

Cindy'sworkingcopy

Central repository

svn

?

?

.svn .svn .svn

.svn .svn

.svn .svn

.svn

.svn .svn .svn

.svn .svn

.svn .svn

.svn

.svn .svn .svn

.svn .svn

.svn .svn

.svn

Page 9: Progressive Revision Control

Definition

Alice's repository andworkingcopy

.hg

Bob's repository andworkingcopy

.hg

Cindy's repository andworkingcopy

.hg

Central repository

.hg

Page 10: Progressive Revision Control

Basic concepts

0

c0bda9cb5ce8

1

38d2da7b7a7b

2

294f1e8244b1

3

3850688da582

4

294f1e8244b1 0d5495eb5994

tip

Page 11: Progressive Revision Control

Basic concepts

Practice is

the King

Page 12: Progressive Revision Control

Basic concepts

Key points to remember:

● revisions, branches, merges, heads, tip● local and global revision ids● no network connection is required for most operations● pull-merge-commit cycle

Page 13: Progressive Revision Control

Basic concepts

Most used commands:

hg commit

hg update

hg merge

hg pull

hg push

hg revert

create new revision

update working copy to specified revision

merge two branches

get changes from remote repo

upload changes to remote repo

restore the state and content to specific revision

Page 14: Progressive Revision Control

Goodies

Useful features:

hg serve

hg bisect

hg fetch

hg convert

light-weight built-in server

find bugs using binary search

pull+merge+update

convert to hg from CVS, SVN, git and more

Extensions

Page 15: Progressive Revision Control

Download and installation

Windows/MacOS X/Sources

http://mercurial.selenic.com/downloads/

Gentoo

$ emerge mercurial

Debian/Ubuntu

$ apt-get install mercurial

Fedora

$ yum install mercurial

Page 16: Progressive Revision Control

Tools

All platforms

TortoiseHG

Eclipse plug-ins

Command line interface

IntelliJ IDEA plug-ins

Windows

http://mercurial.selenic.com/wiki/OtherTools

More tools

Page 17: Progressive Revision Control

Integration

Page 18: Progressive Revision Control

Conclusions

Page 19: Progressive Revision Control

Resources

Official Mercurial Wiki http://mercurial.selenic.com/wiki

Mercurial: The Definitive Guidehttp://hgbook.red-bean.com

Version Control with Subversionhttp://svnbook.red-bean.com/

InfoQ: Distributed Version Control Systems: A Not-So-Quick Guide Throughhttp://www.infoq.com/articles/dvcs-guide

Wikipediahttp://www.wikipedia.org

Page 20: Progressive Revision Control

Contacts

E-mail: [email protected]

Twitter: @yatskevich

Page 21: Progressive Revision Control

The End

Any Questions?