Bazaar Version Control
      http://bazaar-vcs.org
Why Bazaar?
• Lightweight and simple
• Python based thus x-platform
• Plugin architecture
• No dependancy on a centralised...
Set-up a versioned dir
    $ cd ~/bazaar
    $ bzr init demo


~/bazaar/demo is now set-up to be versioned
Let’s add a file
$ cd ~/bazaar/demo
$ vim test.css
$ bzr add
Let’s add a file
$ cd ~/bazaar/demo
$ 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.
Publish
Simply copy the directory to a webserver
Other people can take a branch by running:
$ bzr branch http://server.co....
Useful commands
bzr checkout - checks out branches.
bzr update - update the local files to match those in the repo.
bzr rev...
Shared Repository
$ cd ~/bazaar/
$ bzr init-repo --no-trees sftp://server/path/to/
bzr/
$ bzr init sftp://server/path/to/b...
Adding and committing
$ cp -R ~/projects/bigmuffin/* ~/bazaar/bigmuffin/
$ bzr add
$ bzr status
$ bzr commit -m “bigmuffin pr...
Conflicts
A conflict is created when the merging algorithm cannot
make sense of the changes.
Should a conflict occur you will...
Resolving Conflicts
Compare styles.css.OTHER and
styles.css.THIS and manually rectify the
differences.
The merged file needs...
Resolving Conflicts
Bazaar will automatically delete the other files
Macs have a really nice diff app for this which is incl...
Branching & Merging
$ cd ~/bazaar/
$ bzr branch sftp://server/path/to/bzr/bigmuffin sftp://
server/path/to/bzr/myamazingfea...
Plugins
Bazaar Email - a nice plugin that simply sends diffs of
commits to an email address of your choice.
Publish-bot - ...
Points of interest
Mozilla took a look at bazaar for version control and
compared it with mecurial (http://www.selenic.com...
Points of interest
Bazaar is a canonical project the people behind
Ubuntu.
Launchpad.net is Canonical’s sourceforge. As a ...
Easter Egg
$ bzr rocks
Easter Egg
$ bzr rocks
It sure does!
Upcoming SlideShare
Loading in …5
×

Bazaar VCS Lightning Talk

3,913 views

Published on

A brief introduction to the awesome Python based version control system

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,913
On SlideShare
0
From Embeds
0
Number of Embeds
49
Actions
Shares
0
Downloads
75
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Bazaar VCS Lightning Talk

  1. 1. Bazaar Version Control http://bazaar-vcs.org
  2. 2. Why Bazaar? • Lightweight and simple • Python based thus x-platform • Plugin architecture • No dependancy on a centralised repo • Copies of revisions locally and remotely • Allows commits locally when offline
  3. 3. Set-up a versioned dir $ cd ~/bazaar $ bzr init demo ~/bazaar/demo is now set-up to be versioned
  4. 4. Let’s add a file $ cd ~/bazaar/demo $ vim test.css $ bzr add
  5. 5. Let’s add a file $ cd ~/bazaar/demo $ vim test.css $ bzr add added test.css
  6. 6. First commit $ bzr commit -m “my first commit”
  7. 7. First commit $ bzr commit -m “my first commit” added test.css Committed revision 1.
  8. 8. Publish Simply copy the directory to a webserver Other people can take a branch by running: $ bzr branch http://server.co.uk/branch/dir/ For read write share via SFTP.
  9. 9. Useful commands bzr checkout - checks out branches. bzr update - update the local files to match those in the repo. bzr revert - reverts files back to a specific rev bzr status - current status of modified, added and removed files bzr log - the log of commits bzr ignore - allows patterns of files to ignore .DS_Store!! bzr uncommit - reverse a commit bzr diff - provides a diff of revisions
  10. 10. Shared Repository $ cd ~/bazaar/ $ bzr init-repo --no-trees sftp://server/path/to/ bzr/ $ bzr init sftp://server/path/to/bzr/bigmuffin $ bzr checkout sftp://server/path/to/bzr/bigmuffin remote note: --no-trees prevents trees being created on the remote repo.
  11. 11. Adding and committing $ cp -R ~/projects/bigmuffin/* ~/bazaar/bigmuffin/ $ bzr add $ bzr status $ bzr commit -m “bigmuffin project files added”
  12. 12. Conflicts A conflict is created when the merging algorithm cannot make sense of the changes. Should a conflict occur you will end up with several files being created. If the file with a conflict is style.css you will end up with: styles.css styles.css.BASE - The common base styles.css.OTHER - The branch styles.css.THIS - Your changes.
  13. 13. Resolving Conflicts Compare styles.css.OTHER and styles.css.THIS and manually rectify the differences. The merged file needs to be called styles.css Make sure you delete styles.css.THIS Then run: $ bzr resolve file
  14. 14. Resolving Conflicts Bazaar will automatically delete the other files Macs have a really nice diff app for this which is included with xcode. It’s called FileMerge.
  15. 15. Branching & Merging $ cd ~/bazaar/ $ bzr branch sftp://server/path/to/bzr/bigmuffin sftp:// server/path/to/bzr/myamazingfeature $ bzr checkout sftp://server/path/to/bzr/ myamazingfeature amazingfeature $ cd amazingfeature $ cd ~/bazaar/bigmuffin $ bzr merge ../amazingfeature
  16. 16. Plugins Bazaar Email - a nice plugin that simply sends diffs of commits to an email address of your choice. Publish-bot - sends commit messages to irc Commit selector - allows you to choose what files you commit.
  17. 17. Points of interest Mozilla took a look at bazaar for version control and compared it with mecurial (http://www.selenic.com/ mercurial/wiki/) another Python based decentralised VCS. Their issue with bazaar was mainly around speed but... All of the points of speed have been a focus of the Bazaar team since then and as a result subsequent versions have increased dramtically in performance.
  18. 18. Points of interest Bazaar is a canonical project the people behind Ubuntu. Launchpad.net is Canonical’s sourceforge. As a result it’s file hosting is built around bazaar. Though a little rough around the edges it shows promise.
  19. 19. Easter Egg $ bzr rocks
  20. 20. Easter Egg $ bzr rocks It sure does!

×