Thursday, December 4, 2008

OSDC liveblogging: Bazaar (VCS)

Gentle introduction to version control using Bazaar
Michael Hudson from Canonical

What is Bazaar?
Distributed VCS
No privileged sentral location
aims to be safe, friendly, free and fast

'bzr init'
'bzr add'
'bzr ci -m "initiam import"'

'bzr push' uploads or updates branch data on the server
'bzr branch' - get a copy of a remote branch
'bzr pull'
'bzr merge'

Some concepts
-------------

WorkingTree - collection of version controlled files and directories
Revision - A snapshot of a working tree and the fundamental object in bazaar
Branch - An ordered series of revisions
Repository - A place where revisions are stored
Commit - create a new snapshot/revision
Delta - the difference between two revisions
Merge - determining the outstanding revisions in one branch and applying them to another

* Can run a centralised model, then works quite like SVN

* Or, can run semi-centralised
- Mainline or trunk reflects current mainline
- New features developed in own branch
- Patch Queue Manager (PWM) can enforce this / guard a branch

* Full distributed
- Developers maintain their own branches
- Share / Merge p2p
- Can still use PQM to maintain a test-suite protected mainline branch

* Mixed-mode obviously possible

Advantages
----------
Don't need to give people commit rights to trunk to allow them to contribute (can send their revisions to other developers directly via 'bzr send')

A Bit About Launchpad
---------------------
A web-based tool to support open source software development
Designed to scale

Steps:
* Register launchpad id
* Register SSH keys
* Create branches, push/pull

Get some things for free:
* Server maintenance
* Web view of branch
* Branch notifications (commit mails)
* Simple access control through teams
* Support for code reviews
* Has email interface