bzr - the bazaar source revision control...

27
bzr - The Bazaar source bzr - The Bazaar source revision control system revision control system Lenz Grimmer Lenz Grimmer < <[email protected] > > 2008-08-29 2008-08-29 DrupalCon 2008, Szeged, Hungary DrupalCon 2008, Szeged, Hungary

Upload: others

Post on 19-Jul-2020

15 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

bzr - The Bazaar source bzr - The Bazaar source revision control systemrevision control system

Lenz GrimmerLenz Grimmer<<[email protected]>>2008-08-29 2008-08-29 DrupalCon 2008, Szeged, HungaryDrupalCon 2008, Szeged, Hungary

Page 2: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Agenda● Introduction to DVCS● Features of Bazaar● Terminology● Workflows, Commands,

Examples● Related Tools / Links

Page 3: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

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)

Page 4: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

DVCS: Benefits

● Empowering developers: local commits

● Encourage experimenting● Easy collaboration: sharing and

merging● Patches don't bit-rot

Page 5: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Benefits (2)● Parallel development of new

features● Maintaining local modifications● Faster: local operations vs.

Network● Every branch is a full backup

Page 6: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Bazaar: Features● Python● Centralized and decentralized

workflows● Shared repositories to save

space● One single .bzr directory● Various transport protocols

Page 7: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Features (2)● Merge tracking● Moved files retain history● Hooks and Scripts● Plugins (e.g. GUI extensions)● Command Aliases

Page 8: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

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

Page 9: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

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

Page 10: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

General Syntax

bzr [global opts] command [opts] [args]

Page 11: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Getting Help

bzr help <command>bzr help commands

bzr help topics

Page 12: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Solo Workflow● Create project● Commit changes● Review/browse

history● Package release● Apply new

changes● Rinse & Repeat

Page 13: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Initializing a Repository

bzr init <directory>

Page 14: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Adding/Modifying Files

bzr add <files>bzr diff <files>

Page 15: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Commiting Changes

bzr commit <files>bzr gcommitbzr qcommit

Page 16: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Looking at revision history

bzr logbzr diff

bzr visualize

Page 17: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

bzr visualize

Page 18: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Pair programming

C r e at e r e p o si t o r y

B r an c h

H ac kH ac kC o m m it

Pu l l an d m e r ge

C o m m it

D e v e lo p e r A D e v e lo p e r B

Pu sh , p u l l , m e r ge

Page 19: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Branching

bzr branch FROM TO

Page 20: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Publishing changes

bzr pushbzr send

Page 21: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Retrieving updates

bzr pullbzr mergebzr missing

Page 22: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Centralized Workflow

C h e c k o u tU p d at e

C h e c k o u tC e n t r al r e p o si t o r y

C o m m it

D e v e lo p e r A

D e v e lo p e r B

Page 23: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Code deployment

U p st r e am

p r o je c tL iv e si t e

D e v e lo p e r

B r an c h

H ac k

C o m m it

M e r gePu sh

Page 24: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Central Branch & Gatekeer

C en t r al r e p o si t o r y G at e k e e p e r

D e v e lo p e r A D e v e lo p e r B

B r an c h , M e r ge ,

Pu l l Ed i t , C o m m it ,

Pu sh

M e r ge , R e v iew

Pu sh

Ed i t , C o m m it ,

Pu sh

Page 25: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Related tools / Links● Project Home Page: http://bazaar-vcs.org/● BundleBuggy:

http://code.aaronbentley.com/bundlebuggy/● Hacking on Drupal with Bazaar

http://drupal.org/node/45368https://code.launchpad.net/drupal

● PQM (Patch Queue Management):https://launchpad.net/pqm

● LaunchPad: https://launchpad.net

● #bzr on irc.freenode.nethttp://planet.bazaar-vcs.org/

Page 26: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Q & A

Questions, Comments?

Page 27: bzr - The Bazaar source revision control systemszeged2008.drupalcon.org/files/DrupalCon-BazaarIntro-2008-08-29.pdf · bzr - The Bazaar source revision control system Lenz Grimmer

Thank you!Lenz Grimmer <[email protected]>