Bazaar Version Control


Bazaar Version Control
eBook: $29.99
Formats: PDF, PacktLib, ePub and Mobi formats
$25.49
save 15%!
Print + free eBook + free PacktLib access to the book: $79.98    Print cover: $49.99
$49.99
save 37%!
Free Shipping!
UK, US, Europe and selected countries in Asia.
Also available on:
Overview
Table of Contents
Author
Support
Sample Chapters
  • Gain an understanding of what version control is, and how you can benefit and effectively use it to collaborate with other people
  • Place any project under version control and track the history of changes easily
  • Understand all the core operations and the most common workflows through practical examples and clear explanations
  • Learn advanced workflows through a step-by-step approach covering increasingly complex topics and situations of collaboration

Book Details

Language : English
Paperback : 402 pages [ 235mm x 191mm ]
Release Date : June 2013
ISBN : 1849513562
ISBN 13 : 9781849513562
Author(s) : Janos Gyerik
Topics and Technologies : All Books, Application Development, Open Source


Table of Contents

Preface
Chapter 1: Getting Started
Chapter 2: Diving into Bazaar
Chapter 3: Using Branches
Chapter 4: Using Bazaar in a Small Team
Chapter 5: Working with Bazaar in Centralized Mode
Chapter 6: Working with Bazaar in Distributed Mode
Chapter 7: Integrating Bazaar in CDE
Chapter 8: Using the Advanced Features of Bazaar
Chapter 9: Using Bazaar Together with Other VCS
Chapter 10: Programming Bazaar
Index
  • Chapter 1: Getting Started
    • Version control systems
      • Reverting a project to a previous state
      • Viewing the log of changes
      • Viewing the differences between revisions
      • Branching and merging
      • Acronyms related to version control
    • Centralized version control systems (CVCS)
    • Distributed version control systems (DVCS)
    • What is Bazaar?
    • Installing Bazaar and its plugins
      • GNU/Linux
        • Ubuntu, Debian, and derivatives
        • Red Hat, Fedora, CentOS, and derivatives
        • openSUSE and derivatives
        • Installing Bazaar using pip
        • Other installation methods
      • Windows
      • Mac OS X
      • Bazaar in a shared hosting environment
    • Interacting with Bazaar
      • Using the command-line interface
      • Using the graphical user interface
      • Using the two user interfaces together
    • Upgrading Bazaar to the latest version
    • Uninstalling Bazaar
    • Getting help
    • Summary
  • Chapter 2: Diving into Bazaar
    • Understanding the core concepts
      • Revision
      • Repository
      • Branch
      • Working tree
      • Putting the concepts together
      • Storing Bazaar's data in the filesystem
    • Introducing the user interfaces
      • Using the command-line interface (CLI)
      • Using Bazaar Explorer
    • Configuring Bazaar
      • Configuring the author information
      • Configuring the default editor
      • Other configuration options
    • Performing the basic version control operations
      • Putting a directory under version control
        • Using the command line
        • Using Bazaar Explorer
      • Checking the status of files and directories
        • Using the command line
        • Using Bazaar Explorer
      • Adding files to version control
        • Using the command line
        • Using Bazaar Explorer
      • Recording a new revision
        • Using the command line
        • Using Bazaar Explorer
      • Ignoring files
        • Using the command line
        • Using Bazaar Explorer
        • Checkpoint
      • Deleting files
        • Using the command line
        • Using Bazaar Explorer
      • Undoing changes
        • Using the command line
        • Using Bazaar Explorer
      • Editing files
        • Using the command line
        • Using Bazaar Explorer
      • Viewing differences in changed files
        • Using the command line
        • Using Bazaar Explorer
        • Checkpoint
      • Renaming or moving files
        • Using the command line
        • Using Bazaar Explorer
        • Checkpoint
      • Viewing the revision history
        • Using the command line
        • Using Bazaar Explorer
      • Restoring files from a past revision
        • Using the command line
        • Using Bazaar Explorer
      • Putting it all together
        • Making different kinds of changes
        • Understanding the backup files created by Bazaar
        • Understanding the .bzr directory
        • How often to commit?
    • Beyond the basics
      • Mastering the command line
        • Common flags
        • Common behavior in all the commands
        • Using shorter aliases of commands
        • Quick reference card
      • Using tags
      • Specifying revisions
        • Specifying a single revision
        • Specifying a range of revisions
      • Viewing differences between any two revisions
        • Viewing differences between any revision and the working tree
        • Viewing differences between any two revisions
        • Viewing differences going from one revision to the next
      • Cloning your project
    • Summary
  • Chapter 3: Using Branches
    • What is a branch?
      • A single branch with a linear history
      • Multiple diverged branches
      • Branches with non-linear history
      • Unrelated branches
    • What can you do with branches?
      • Creating branches
      • Comparing branches
      • Merging branches
      • Mirroring branches
    • Why use more than one branch?
      • Separating the development of new features
      • Switching between tasks
      • Experimenting with different approaches
      • Maintaining multiple versions
    • Understanding core terms and concepts
      • trunk, master, and mainline
      • The tip of a branch
      • Source and target branches
      • Parent branch
      • Diverged branches and the base revision
      • Storing branch data
    • Using a shared repository
      • Using the command line
      • Using Bazaar Explorer
    • Basic branching and merging
      • Getting the example project
        • Using the command line
        • Using Bazaar Explorer
      • Creating a feature branch
        • Using the command line
        • Using Bazaar Explorer
      • Working on a branch
      • Starting another branch
      • Merging the bugfix branch
        • Using the command line
        • Using Bazaar Explorer
      • Viewing merged revisions in the log
        • Using the command line
        • Using Bazaar Explorer
    • Using the branch command
      • Creating branches based on an older revision
        • Using the command line
        • Using Bazaar Explorer
    • Viewing basic branch information
    • Comparing branches
      • Using the command line
        • Viewing missing revisions between branches
        • Viewing the differences between branches
      • Using Bazaar Explorer
        • Viewing the tree of branches
        • Viewing missing revisions between branches
        • Viewing the differences between branches
    • Merging branches
      • Performing a three-way merge
      • Completing the merge
        • Committing the merge
        • Aborting the merge
      • Resolving conflicts
        • Resolving text conflicts
        • Resolving content conflicts
        • Redoing the merge
        • Resolving other types of conflicts
      • Merging a subset of revisions
        • Merging up to a specific revision
        • Merging a range of revisions
        • Cherry-picking
      • Understanding revision numbers
      • Merging from multiple branches
    • Mirroring branches
      • Mirroring from another branch
      • Mirroring from the current branch
    • Summary
  • Chapter 4: Using Bazaar in a Small Team
    • Collaborating with others
      • Working with remote branches
      • Implementing simple workflows
    • Sharing branches over the network
      • Specifying remote branches
        • Using URL parameters
        • Using remote branches through a proxy
      • Sharing branches using a distributed filesystem
      • Sharing branches over SSH
        • Using individual SSH accounts
        • Using individual SSH accounts with SFTP
        • Using a shared restricted SSH account
        • Using SSH host aliases
        • Using a different SSH client
      • Sharing branches using bzr serve
      • Sharing branches using inetd
      • Sharing branches over HTTP or HTTPS
    • Working with remote branches
      • Working with remote branches directly
      • Using local mirror branches
        • Creating a local mirror
        • Using a shared repository
        • Updating a local mirror
      • Using remote mirror branches
        • Creating a remote mirror
        • Using a shared repository
        • Updating a remote mirror
      • Using branches without a working tree
        • Creating a local branch without a working tree
        • Creating or removing the working tree
        • Reconfiguring working trees in a shared repository
        • Creating remote branches without a working tree
      • Slicing and dicing branches
    • Implementing simple workflows
      • Using independent personal branches
        • Merging from branches repeatedly
        • Handling criss-cross merges
        • Viewing the history from different perspectives
      • Using feature branches and a common trunk
        • Merging into a common remote trunk
        • Merging feature branches in lock-step
        • Doing "code reviews"
    • Summary
  • Chapter 5: Working with Bazaar in Centralized Mode
    • The centralized mode
      • Core operations
      • The centralized workflow
        • Checkout from the central branch
        • Making changes
        • Committing changes
        • Updating from the server
        • Handling conflicts during update
      • Advantages
        • Easy to understand
        • Easy to synchronize efforts
        • Widely used
      • Disadvantages
        • Single point of failure
        • Administrative overhead of access control
        • The update operation is not safe
        • Unrelated changes interleaved in the revision history
    • Using Bazaar in centralized mode
      • Bound branches
      • Creating a checkout
        • Using the command line
        • Using Bazaar Explorer
      • Updating a checkout
        • Using the command line
        • Using Bazaar Explorer
        • Visiting an older revision
      • Committing a new revision
      • Practical tips when working in centralized mode
    • Working with bound branches
      • Unbinding from the master branch
      • Binding to a branch
      • Using local commits
    • Working with multiple branches
    • Setting up a central server
      • Using an SSH server
        • Using the smart server over SSH
        • Using individual SSH accounts
        • Using a shared restricted SSH account
        • Using SFTP
      • Using bzr serve directly
      • Using bzr serve over inetd
    • Creating branches on the central server
      • Creating a shared repository without working trees
      • Reconfiguring a shared repository to not use working trees
      • Removing an existing working tree
      • Creating branches on the server without a working tree
    • Practical use cases
      • Working on branches using multiple computers
      • Synchronizing backup branches
    • Summary
  • Chapter 6: Working with Bazaar in Distributed Mode
    • The distributed mode in general
      • Collaborators work independently
      • The mainline branch is just a convention
      • Collaborators write only to their own branches
      • The distributed mode gives great flexibility
      • Encouraging feature branches
      • The revision history depends on the perspective
    • The human gatekeeper workflow
      • Overview
      • Setting guidelines to accept merge proposals
      • The role of the gatekeeper
      • Creating a merge proposal
        • Using a Bazaar hosting site
        • Sharing the branch URL with the gatekeeper
        • Sending a merge directive
      • Rejecting a merge proposal
      • Accepting a merge proposal
      • Reusing a branch
      • Commander/Lieutenant model
      • Switching from the peer-to-peer workflow
    • The automatic gatekeeper workflow
      • Patch Queue Manager (PQM)
      • Revision history graph
    • The shared mainline workflow
      • Updating the mainline using push operations
        • Updating the mainline using a new local mirror
        • Re-using an existing local mirror
      • Updating the mainline using a bound branch
        • Updating the mainline using a new checkout
        • Reusing an existing checkout
    • Choosing a distributed workflow
    • Summary
  • Chapter 7: Integrating Bazaar in CDE
    • What is a CDE?
    • Working with Launchpad
      • Creating a Launchpad account
        • Creating an account
        • Associating bzr with Launchpad
        • Testing your setup
      • Hosting personal branches
        • Uploading personal branches
        • Using personal branches
        • Deleting branches
      • Hosting a project
        • Using the Sandbox site
        • Creating a project
        • Uploading project branches
        • Viewing project branches
        • Viewing your own branches
        • Setting a focus branch
        • Using series
        • Viewing and editing branch details
      • Using merge proposals
        • Creating a merge proposal
        • Viewing and editing a merge proposal
        • Approving / rejecting a merge proposal
        • Using the e-mail interface to handle a merge proposal
      • Browsing the content of a branch
      • Using the bug tracking system
        • Reporting bugs
        • Linking commits to bugs
      • Useful tips when using Launchpad
        • Deleting or renaming a project
        • The karma system
        • Hosting private projects
    • Integrating Bazaar into Redmine
    • Integrating Bazaar into Trac
      • Enabling the plugin globally
      • Enabling the plugin for one project only
      • Browsing Bazaar branches
      • Getting help
    • Linking commits to bug trackers
      • Configuring bug trackers in Bazaar
      • Linking to public bug trackers
      • Linking to Launchpad
      • Linking to Bugzilla
      • Linking to Trac
      • Linking to other bug trackers
      • Advanced integration with bug trackers
    • Web-based repository browsing with Loggerhead
      • Installing Loggerhead
      • Running Loggerhead locally
      • Running Loggerhead in production
    • Summary
  • Chapter 8: Using the Advanced Features of Bazaar
    • Using aliases
    • Undoing commits
    • Shelving changes
      • Putting changes "on a shelf"
      • Listing and viewing shelved changes
      • Restoring shelved changes
      • Using shelves to revert partial changes in a file
      • Using shelves to commit partial changes in a file
    • Using lightweight checkouts
      • Creating a lightweight checkout
      • Converting a checkout to a lightweight checkout
      • Converting a branch to a lightweight checkout
      • Converting from a lightweight checkout
    • Re-using a working tree
      • Setting up the example
      • Preparing to switch branches
      • Switching to another branch using core commands
      • Switching to another branch by using switch
      • Using a lightweight checkout for switching branches
    • Using stacked branches
    • Signing revisions using GnuPG
      • Configuring the signing key used by Bazaar
      • Setting up a sample repository
      • Verifying signatures
      • Signing existing revisions
      • Signing a range of commits
      • Signing new commits automatically
    • Configuring a hook to send an e-mail on commit
      • Setting up the example
      • Installing the email plugin
      • Enabling commit emails
      • Testing the configuration
      • Customizing the plugin
    • Summary
  • Chapter 9: Using Bazaar Together with Other VCS
    • Working with other VCS in general
      • Working with foreign branches
      • Installing plugins
        • Installing plugins in Windows or Mac OS X
        • Installing plugins in Linux
        • Installing plugins using Pip
        • Installing additional requirements
      • Understanding the protocol overhead
      • Using shared repositories
      • Limitations
      • Issues and crashes
    • Using Bazaar with Subversion
      • Installing bzr-svn
      • Supported protocols and URL schemes
      • Using the example Subversion repository
      • Understanding branches in Subversion
      • Branching or checkout from Subversion
      • Preserving Subversion metadata
        • Preserving original revision numbers
        • Preserving versioned properties
        • Preserving revision and file IDs
      • Pulling or updating from Subversion
      • Committing to Subversion
      • Pushing to Subversion
      • Merging Subversion branches
      • Merging local branches into Subversion
      • Binding and unbinding to Subversion locations
      • Using lightweight checkouts
      • Browsing the logs
      • Limitations of bzr-svn
      • Final remarks on bzr-svn
    • Using Bazaar with Git
      • Installing bzr-git
      • Supported protocols and URL schemes
      • Using the example Git repository
      • Branching from git
      • Preserving version control metadata
        • Preserving Git revision ids
        • Preserving merged branches and revisions
      • Pulling from Git
      • Pushing to Git
      • Merging Git branches
      • Merging local branches into Git
      • Limitations of bzr-git
      • Final remarks on bzr-git
    • Migrating between version control systems
      • Installing bzr-fastimport
      • Exporting version control data
        • Exporting Subversion data
        • Exporting Git data
        • Exporting Bazaar data
        • Exporting other VCS data
      • Importing version control data
      • Querying fast-import files
      • Filtering fast-import
    • Summary
  • Chapter 10: Programming Bazaar
    • Using Bazaar programmatically
      • Using bzrlib outside of bzr
      • Accessing Bazaar objects
        • Accessing branch data
        • Accessing branch configuration values
        • Accessing revision history
        • Accessing the contents of a revision
        • Formatting revision info using a log format
        • More examples
      • Locating BZRLIB
    • Creating a plugin
      • Using the example plugins
        • Using the summary plugin
        • Using the customlog plugin
        • Using the appendlog plugin
      • Naming the plugin
      • Creating the plugin directory
      • Implementing the plugin
      • Writing the README file
      • Creating __init__.py
        • Setting help and documentation texts
        • Declaring the API version
        • Declaring the plugin version
        • Verifying the loaded module name
        • Registering new functionality
        • Registering a test suite
        • Performance considerations
      • Writing unit tests
      • Creating setup.py
      • Browsing existing plugins
      • Registering your plugin
    • Creating a hook
      • Hook points, hook classes, and hook types
      • Registering hooks
      • Activating hooks
    • References
    • Summary

Janos Gyerik

Janos Gyerik is a Software Engineer living in Paris, France. He has been using Bazaar since its early releases to manage his personal projects, some of which are open source and available on Launchpad (https://launchpad.net/~janos-gyerik). Janos is passionate about Bazaar, and although he embraces other version control systems as well, he wouldn't miss a chance to uphold Bazaar's values over competitive solutions. Janos spends most of his free time on various personal projects, and he is always up to something, which you can read about on his blog at http://janosgyerik.com/.
Sorry, we don't have any reviews for this title yet.

Code Downloads

Download the code and support files for this book.


Submit Errata

Please let us know if you have found any errors not listed on this list by completing our errata submission form. Our editors will check them and add them to this list. Thank you.


Errata

- 1 submitted: last submission 30 Aug 2013

Support Page no: 36, 58, 123
Bazaar Explorer in Windows, Linux and Mac OS X does not show the large Work, Start and Send buttons

To access the Appearance tab of the Settings screen use:
In Windows: Tools / Options
In Linux: Edit / Preferences
In Mac OS X: Python / Preferences
The screen has multiple tabs, the first tab is called Appearance. In the Toolbar, change the value of Contents to "expanded". This will show the buttons the book talks about.

Sample chapters

You can view our sample chapters and prefaces of this title on PacktLib or download sample chapters in PDF format.

Frequently bought together

Bazaar Version Control +    Citrix XenDesktop 5.6 Cookbook =
50% Off
the second eBook
Price for both: $43.04

Buy both these recommended eBooks together and get 50% off the cheapest eBook.

What you will learn from this book

  • Understand the core principles of version control
  • Learn all the version control operations and how to use them effectively
  • Understand the simple intuition that is consistently behind all the operations in Bazaar, enabling you to perform from simple to advanced operations easily and confidently
  • Put any project under version control right now and start tracking your changes
  • Collaborate with others, whether in a peer-to-peer, centralized-style, or decentralized-style workflow
  • Learn how to combine basic workflows in order to create more complex custom workflows best suited for your team and project
  • Combine the command-line interface and the graphical interface effectively, using whichever is best suited for a given purpose
  • Integrate Bazaar with collaborative tools such as Launchpad, Trac, Bugzilla, Redmine, and others
  • Use Bazaar together with other version control systems such as Subversion or Git

In Detail

Bazaar is a version control system that enables you to track your changes, browse the history of revisions, or revert to a previous state with ease. You can benefit greatly from the principles and practical uses of version control with Bazaar in any software project.

This book will walk you through the principles and basic and advanced operations of version control, taking a step-by-step approach covering increasingly complex topics and situations of collaboration. Packed with examples, the book aims to give you a thorough understanding of the subject in order to get you fully comfortable using this powerful, highly intuitive and consistent tool in any project and workflow thrown at you.

The book starts by introducing the fundamentals of version control to first-time users. After explaining the basic principles, we dive into action covering the various operations and workflows of version control using Bazaar. Topics are covered in increasing order of complexity from solo mode, peer-to-peer, centralized-style, and ultimately distributed-style. The book also covers advanced subjects such as integration with collaborative environments and other version control systems, as well as using Bazaar programmatically and creating plugins. This book will help you gain solid knowledge about version control and enable you to use Bazaar effectively in your projects.

Approach

This book is a step-by-step tutorial for beginner to intermediate developers who want to get started with Bazaar quickly.

Who this book is for

This book is designed for anyone who may be new to version control systems. If you are a programmer or a system administrator, you can benefit greatly from using Bazaar in your projects. To those already familiar with version control systems, this book should serve as a fast and easy way to understand Bazaar.

Code Download and Errata
Packt Anytime, Anywhere
Register Books
Print Upgrades
eBook Downloads
Video Support
Contact Us
Awards Voting Nominations Previous Winners
Judges Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software
Resources
Open Source CMS Hall Of Fame CMS Most Promising Open Source Project Open Source E-Commerce Applications Open Source JavaScript Library Open Source Graphics Software