bzr - The Bazaar source revision control system

2,503 views

Published on

Slides of my talk about Bazaar at phpDay in Verona, Italy:
http://www.phpday.it/site/phpday-2009/calendario-conferenze/canale-developers/bzr-the-bazaar-source-revision-control-system/

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,503
On SlideShare
0
From Embeds
0
Number of Embeds
35
Actions
Shares
0
Downloads
37
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

bzr - The Bazaar source revision control system

  1. 1. bzr - The Bazaar source revision control system Lenz Grimmer <lenz@grimmer.com>
  2. 2. Agenda ● Introduction to DVCS ● Features of Bazaar ● Terminology ● Workflows, Commands, Examples ● Related Tools / Links
  3. 3. 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)
  4. 4. DVCS: Benefits ● Empowering developers: local commits ● Encourage experimenting ● Easy collaboration: sharing and merging ● Patches don't bit-rot
  5. 5. DVCS: Benefits (2) ● Parallel development of new features ● Maintaining/tracking local modifications ● Faster: local operations vs. Network ● Every branch is a full backup
  6. 6. Bazaar: Features ● http://bazaar-vcs.org/ ● Multi-platform (Python) ● Ease of use: 5 commands to get started ● Command Aliases (builtin & user-defined) ● Well-documented ● Commandline help
  7. 7. 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
  8. 8. 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
  9. 9. Launchpad ● http://launchpad.net/ ● Project / code hosting ● Mailing lists / Answers (FAQs) ● Bug tracking / Blueprints ● Translations ● Tight integration with Bazaar
  10. 10. 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
  11. 11. 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
  12. 12. General Syntax bzr [global opts] command [opts] [args]
  13. 13. Getting Help bzr help <command> bzr help commands bzr help topics
  14. 14. Solo Workflow ● Create project ● Commit changes ● Review/browse history ● Package release ● Apply new changes ● Rinse & Repeat
  15. 15. Initializing a Repository bzr init <directory>
  16. 16. Adding/Modifying Files bzr add <files> bzr diff <files>
  17. 17. Commiting Changes bzr commit <files> bzr gcommit bzr qcommit
  18. 18. Looking at revision history bzr log bzr diff bzr visualize
  19. 19. bzr visualize
  20. 20. Screenshot: bzr gannotate
  21. 21. Pair programming Create repository HackCommit Hack Commit Pull and merge Branch Push, pull, merge Developer A Developer B
  22. 22. Branching bzr branch FROM TO
  23. 23. Publishing changes bzr push bzr send
  24. 24. Retrieving updates bzr pull bzr merge bzr missing
  25. 25. Centralized Workflow Developer A Update/Merge Checkout Commit Developer B Central repository Commit Checkout
  26. 26. Code deployment Upstream project Local deployment Commit Upstream Live site project Push Merge Branch Hack
  27. 27. Central Branch & Gatekeer Developer A Developer B Branch, Merge, Pull Edit, Commit, Push Edit, Commit, Push Merge, Review Push Central repository Gatekeeper
  28. 28. Related tools / Links ● Project Home Page: http://bazaar-vcs.org/ ● LaunchPad: https://launchpad.net ● #bzr on irc.freenode.net ● Planet Bazaar: http://planet.bazaar-vcs.org/ ● BundleBuggy: http://code.aaronbentley.com/bundlebuggy/ ● PQM (Patch Queue Management): https://launchpad.net/pqm
  29. 29. Q&A Questions, Comments?
  30. 30. Thank you! Lenz Grimmer <lenz@grimmer.com> http://www.lenzg.net/
  31. 31. bzr vs. git (biased) ● http://bazaar-vcs.org/BzrVsGit ● 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

×