Introduction to Bazaar

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    2 Favorites & 1 Group

    Introduction to Bazaar - Presentation Transcript

    1. Introduction to Bazaar adaptive version control    
    2. Who am I?  Tim Penhey  http://how­bazaar.blogspot.com  https://launchpad.net/~thumper  Currently employed by Canonical  http://canonical.com  Work on Launchpad integrating Bazaar  https://launchpad.net/launchpad­bazaar    
    3. Version Control is Good ”Those who cannot learn from history are doomed to repeat it” ­­ George Santayana    
    4. Because this sucks $ cp myfile.txt myfile.txt.20090120 $ ls myfile* myfile.txt.bak myfile.txt myfile.txt.20090120 myfile.txt.20081218    
    5. Older Version Control Systems  SCCS  RCS  CVS  Subversion  SourceSafe (the less said about this the better)  Perforce    
    6. Distributed is Better  Sometimes you cannot reach the central server  e.g. A laptop on the move  Should still be able to record changes in a  meaningful manner  A local history is available    
    7. Which trunk is true?  If everyone has a local copy of the project,  who's copy is the ”true trunk”?  Projects that use distributed version control use  social convention    
    8. Bazaar Concepts  Branches  Revisions  Repositories  Working Trees  Formats    
    9. What is a branch?  A line of development  Common to use feature branches  this is where each feature is developed in its own  branch  Lives in a directory on the filesystem  all branches are addressable with a URI  web or filesystem addressable    
    10. What is a revision?  A revision is a collection of modifications  e.g. an applied patch  e.g. updated foo.c and foo.h  Has a committer  The person who called `bzr commit`  May have a different author  Allows work to be attributed to someone else  Has a unique identifier (revision id)    
    11. What is a branch?  A pointer to a tip revision  a revision has one parent for a simple commit  a revision has multiple parents for merges  A directed acyclic graph of revisions  and you though graph theory had no practical  applications    
    12. What is a repository?  a set of revisions    
    13. What is a working tree?  The actual source files that you look at and  interact with    
    14. What is a format?  Each 'object' in Bazaar has a disk format  Formats allow for a smooth upgrade path  Developers knew that they weren't perfect and  planned for future improvements  `bzr upgrade` used to move to newer shiney  formats    
    15. Simple Example $ cd my­project $ bzr init $ bzr add added hello.txt $ bzr commit Committed revision 1.    
    16. Sharing your work  The push command pushes your work to a  different location  bzr push ~/public_html/my­project  Bazaar remembers this location so next time all  you need to do is:  bzr push    
    17. Collaborating  Get someone else's work  bzr branch http://example.com/fooix/feature­x  Merge it in with your work  bzr merge ../feature­x  (you don't actually need to get it first, you can just  merge in the remote branch)  Commit – bzr doesn't auto commit  Enjoy distributed goodness    
    18. Launchpad    
    19. Launchpad  Bazaar hosting  Code reviews  Managing projects and teams  Bug tracking  Translations  Personal Package Archives (PPAs)    
    20. Sharing with Launchpad  Register  Add an SSH key  Push up a branch related to a project:  bzr push lp:~user­name/project­name/branch­name  Push up a branch of unrelated stuff:  bzr push lp:~user­name/+junk/branch­name    
    21. Projects in Launchpad  Projects can specify a main branch  bzr branch lp:project­name  Projects can have multiple series  bzr branch lp:bzr/1.10  bzr branch lp:bzr/1.11    
    22. Bazaar Goodness    
    23. bzr shelve  Works on uncommitted work by default  Can refer to historical changes   Puts changes on a shelf  (a directory out of the way)  Can either put all changes '­a' flag, or  interactively choose changes  unshelve brings the changes back    
    24. Plug­ins  Extensibility through plug­ins  Can add new commands or modify existing  ones  bzr­svn – Interact with Subversion  bzr­email – Send emails of changes  bzrtools – Extra useful commands  Can even add new formats  bzr­loom – Work with a stack of lightweight  branches    
    25. Loggerhead    
    26. Familiarity  Commands that relate clearly to other VCSs  blame (annotate)  commit  log  update  status    
    27. Sensible ignored files  By default   *.a, *.o, *.py[co], *.so, *.sw[nop], *~, .#*, [#]*#  More can be added easily  bzr ignore *.dll  Project specific ignores are stored in .bzrignore  Just because something is ignored, doesn't  mean it can't be added    
    28. Aliases $ bzr alias bzr alias commit=”commit ­­strict” bzr alias ll=”log ­­line ­r ­10..­1 bzr alias unalias=”alias ­­remove”    
    29. Well tested  Development follows test driven development  practices – and has done from the start  All new code needs test coverage  Over 10,000 tests  All tests are run on every attempted merge into  trunk    
    30. Other misc bits  Clear API  Useful when writing plug­ins  Tool integration through XML interface  It just works  Doesn't get in the way    
    31. Bazaar's Curse  Too adaptive?  Local repository or remote repository  Bound or unbound branches  Lightweight / heavyweight checkouts  Repositories with or without working trees    
    SlideShare Zeitgeist 2009

    + Tim PenheyTim Penhey Nominate

    custom

    491 views, 2 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 491
      • 491 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 2
    • Downloads 6
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events