bzr - The Bazaar source revision control system
Upcoming SlideShare
Loading in...5

bzr - The Bazaar source revision control system



Slides of my talk about Bazaar at phpDay in Verona, Italy:

Slides of my talk about Bazaar at phpDay in Verona, Italy:



Total Views
Views on SlideShare
Embed Views



5 Embeds 30 15 8 5 1 1



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

bzr - The Bazaar source revision control system bzr - The Bazaar source revision control system Presentation Transcript

  • bzr - The Bazaar source revision control system Lenz Grimmer <>
  • Agenda ● Introduction to DVCS ● Features of Bazaar ● Terminology ● Workflows, Commands, Examples ● Related Tools / Links
  • DVCS: Concepts ● No central instance ● Every branch a full copy (incl. History) ● Disconnected operation ● Easy to create new branches ● Merging of revisions from other repos ● Multi-Protocol support (http, SSH, SMTP, local filesystem)
  • DVCS: Benefits ● Empowering developers: local commits ● Encourage experimenting ● Easy collaboration: sharing and merging ● Patches don't bit-rot
  • DVCS: Benefits (2) ● Parallel development of new features ● Maintaining/tracking local modifications ● Faster: local operations vs. Network ● Every branch is a full backup
  • Bazaar: Features ● ● Multi-platform (Python) ● Ease of use: 5 commands to get started ● Command Aliases (builtin & user-defined) ● Well-documented ● Commandline help
  • Bazaar: Features (2) ● Centralized and decentralized workflows ● Shared repositories to save space ● No clutter: one single .bzr directory ● Various transport protocols (ssh, http, sftp, ftp, smtp) ● Extensive test suite included
  • Bazaar: Features (3) ● Smart merging ● Renamed files and directories retain history ● Supports other VCSs (svn, hg, git) ● Hooks and Scripts ● Plugins (e.g. GUI extensions) ● Unicode file names rd ● Many 3 -Party tools
  • Launchpad ● ● Project / code hosting ● Mailing lists / Answers (FAQs) ● Bug tracking / Blueprints ● Translations ● Tight integration with Bazaar
  • Bazaar: Terminology ● Revision ● Snapshot of a tree of files/directories ● Includes Metadata (date, author, comment, parent revisions) ● Can be exported ● Working Tree ● Version-controlled directory ● Contains editable files and directories
  • Bazaar: Terminology (cont.) ● Branch ● An ordered series of revisions ● Can be split (cloned) and merged back together ● Checkouts ● Repository ● A store of revisions ● Default: one repository/branch ● Shared repositories to save space and improve performance
  • General Syntax bzr [global opts] command [opts] [args]
  • Getting Help bzr help <command> bzr help commands bzr help topics
  • Solo Workflow ● Create project ● Commit changes ● Review/browse history ● Package release ● Apply new changes ● Rinse & Repeat
  • Initializing a Repository bzr init <directory>
  • Adding/Modifying Files bzr add <files> bzr diff <files>
  • Commiting Changes bzr commit <files> bzr gcommit bzr qcommit
  • Looking at revision history bzr log bzr diff bzr visualize
  • bzr visualize
  • Screenshot: bzr gannotate
  • Pair programming Create repository HackCommit Hack Commit Pull and merge Branch Push, pull, merge Developer A Developer B
  • Branching bzr branch FROM TO
  • Publishing changes bzr push bzr send
  • Retrieving updates bzr pull bzr merge bzr missing
  • Centralized Workflow Developer A Update/Merge Checkout Commit Developer B Central repository Commit Checkout
  • Code deployment Upstream project Local deployment Commit Upstream Live site project Push Merge Branch Hack
  • Central Branch & Gatekeer Developer A Developer B Branch, Merge, Pull Edit, Commit, Push Edit, Commit, Push Merge, Review Push Central repository Gatekeeper
  • Related tools / Links ● Project Home Page: ● LaunchPad: ● #bzr on ● Planet Bazaar: ● BundleBuggy: ● PQM (Patch Queue Management):
  • Q&A Questions, Comments?
  • Thank you! Lenz Grimmer <>
  • bzr vs. git (biased) ● ● Native Windows support and installer ● Direct support for more workflows ● Directories are branches, shared repositories ● Simpler revision objects ● No automatic merge & commit ● User-friendly UI, familiar commands ● Better asynchronous sharing using merge directives