Your SlideShare is downloading. ×
0
Bazaar Version Control
Stuart Colville and Andrew Phillipo
X
Version Control Software
A way to keep a multiple revisions of a single
resource without creating copies

Undo either sh...
History of Version Control Systems



 “Those who cannot remember the past are
 condemned to repeat it.” - George Santanya
SCCS - Source Code Control System
The first Version Control System, built during the
70s

Was dominant until RCS was releas...
RCS - Revision Control System


Built During the 80s as “a better SCCS”

Only knows about revisions of single files

Suppor...
CVS - Concurrent Versioning System

Originally based upon RCS (for managing sets of files/projects) in
the late 80s, by Dic...
HTTP://FLICKR.COM/PHOTOS/EECUE/91518838/
SVN - Subversion
Project start by collab.net in 2000

Built to improve on CVS

Atomic commits

Allows renaming/moving of a...
What do you look for in a
revision control system?
Stability

Easy to use

Doesn’t get in the way of me developing my stuf...
Introduction to Bazaar
Easy to branch and smarter merging

First-class renaming capabilities

No server software needed - ...
BAZAAR DOESN’T
GET IN THE WAY
Bazaar Workflows
Workflows: Solo
As simple as pick a directory and tell bazaar to
start versioning it

No server/database setup

Sharing wit...
Set-up a versioned dir
   $ cd ~/bazaar/demo
   $ bzr init


~/bazaar/demo is now set-up to be
versioned
Let’s add a file
$ vim test.css
$ bzr add
Let’s add a file
$ vim test.css
$ bzr add
added test.css
First commit
$ bzr commit -m “my first
commit”
First commit
$ bzr commit -m “my first
commit”
added test.css
Committed revision 1.
Workflows: Partner
Workflows: Centralised
Workflows: Local Commit
Workflows: Shared
Workflows: Gatekeeper
Workflows: PQM
Why use Distributed VCS in tandem
with Centralised Version Control?

Company policy requires the use of a centralised
syst...
Using Distributed VCS in tandem
with Centralised Version Control
Keeping history:

  Tailor is a tool that can convert bet...
Launchpad.net

 Similar to sourceforge with 100% less CVS

 Tightly integrated with Bazaar - though import
 from other VCS...
Launchpad Example

 Bazaar-email is a simple plug-in that uses the
 post-commit hooks in bazaar to mail diffs

 To contrib...
Launchpad Bug fix process

Branch the trunk/main branch

Make + test the fix

Push the fix back to launchpad and associate it...
Adding a feature to a project

 Branch the trunk/main branch

 Merged pending bugfixes

 Develop the feature

 Push to laun...
Let’s hack on something
Conclusion

 Version control has come a long way

 De-centralisation is the future!

 First-class merging makes this all p...
Questions?



That’s all folks!
http://bazaar-vcs.org/
De-centralised Version Control with Bazaar
De-centralised Version Control with Bazaar
Upcoming SlideShare
Loading in...5
×

De-centralised Version Control with Bazaar

4,768

Published on

This was the presentation I gave on Bazaar version control at Yahoo!'s internal front-end engineering summit

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

No Downloads
Views
Total Views
4,768
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
83
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "De-centralised Version Control with Bazaar"

  1. 1. Bazaar Version Control Stuart Colville and Andrew Phillipo
  2. 2. X Version Control Software A way to keep a multiple revisions of a single resource without creating copies Undo either short or long term Audit-trail of who did what and when Access to details of why a change was made Tools to help teams of developers work on a single code base
  3. 3. History of Version Control Systems “Those who cannot remember the past are condemned to repeat it.” - George Santanya
  4. 4. SCCS - Source Code Control System The first Version Control System, built during the 70s Was dominant until RCS was released SCCS had no concept of branching Internal file format is still used today by Bitkeeper and TeamWare Tools still available to access the SCCS format
  5. 5. RCS - Revision Control System Built During the 80s as “a better SCCS” Only knows about revisions of single files Supports branching, badly “RCS automates the storing, retrieval, logging, identification, and merging of revisions.” - GNU RCS homepage
  6. 6. CVS - Concurrent Versioning System Originally based upon RCS (for managing sets of files/projects) in the late 80s, by Dick Grune and later rewritten by Brian Berliner Only files are versioned, no symlinks or directories No direct moving/renaming capability Branching and merging can be a world of pain Allows control over who can commit Stable, well supported infrastructure and tools
  7. 7. HTTP://FLICKR.COM/PHOTOS/EECUE/91518838/
  8. 8. SVN - Subversion Project start by collab.net in 2000 Built to improve on CVS Atomic commits Allows renaming/moving of assets Language bindings for all common programming languages
  9. 9. What do you look for in a revision control system? Stability Easy to use Doesn’t get in the way of me developing my stuff Flexibility Extensible
  10. 10. Introduction to Bazaar Easy to branch and smarter merging First-class renaming capabilities No server software needed - “Batteries included” Designed with usability, ease of use in mind Cross platform: Linux, BSD, OSX, Windows Flexible and extensible, with a full plug-in system
  11. 11. BAZAAR DOESN’T GET IN THE WAY
  12. 12. Bazaar Workflows
  13. 13. Workflows: Solo As simple as pick a directory and tell bazaar to start versioning it No server/database setup Sharing with other developers is easy, should it be needed Let’s look at an example...
  14. 14. Set-up a versioned dir $ cd ~/bazaar/demo $ bzr init ~/bazaar/demo is now set-up to be versioned
  15. 15. Let’s add a file $ vim test.css $ bzr add
  16. 16. Let’s add a file $ vim test.css $ bzr add added test.css
  17. 17. First commit $ bzr commit -m “my first commit”
  18. 18. First commit $ bzr commit -m “my first commit” added test.css Committed revision 1.
  19. 19. Workflows: Partner
  20. 20. Workflows: Centralised
  21. 21. Workflows: Local Commit
  22. 22. Workflows: Shared
  23. 23. Workflows: Gatekeeper
  24. 24. Workflows: PQM
  25. 25. Why use Distributed VCS in tandem with Centralised Version Control? Company policy requires the use of a centralised system Development with centralised VCS is harder A modern VCS brings more advanced merging Reduction in developer suicide rate
  26. 26. Using Distributed VCS in tandem with Centralised Version Control Keeping history: Tailor is a tool that can convert between many different rcs http://progetti.arstecnica.it/tailor CVSPSImport converts directly from CVS http://bazaar-vcs.org/CVSPSImport Ignore history and take current set of files Faster but obviously you lose access to older history
  27. 27. Launchpad.net Similar to sourceforge with 100% less CVS Tightly integrated with Bazaar - though import from other VCS is possible Removes the barriers to contributing open- source development Bug tracking, FAQ, Documentation and translation management
  28. 28. Launchpad Example Bazaar-email is a simple plug-in that uses the post-commit hooks in bazaar to mail diffs To contribute back to the project I raised bugs for trivial issues found using the plug-in A developer fixed one of these issues and submitted a branch linked to the bug To add this to trunk the maintainer can simply carry out a merge
  29. 29. Launchpad Bug fix process Branch the trunk/main branch Make + test the fix Push the fix back to launchpad and associate it with the bug number bzr push sftp://user@bazaar.launchpad.net/~user/project/branch The maintainer can then merge the fix into the trunk
  30. 30. Adding a feature to a project Branch the trunk/main branch Merged pending bugfixes Develop the feature Push to launchpad bzr push sftp://user@bazaar.launchpad.net/~user/project/branch Raise merge request
  31. 31. Let’s hack on something
  32. 32. Conclusion Version control has come a long way De-centralisation is the future! First-class merging makes this all possible Development should never be constrained by the version control system you use
  33. 33. Questions? That’s all folks! http://bazaar-vcs.org/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×