Diff for "FeatureHighlights/BazaarHosting"

Not logged in - Log In / Register

Differences between revisions 1 and 2
Revision 1 as of 2007-03-25 12:55:10
Size: 3543
Editor: 81
Comment: quick overview of branch hosting
Revision 2 as of 2007-03-25 13:13:55
Size: 3943
Editor: 81
Comment: add example of person's branches
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
Line 7: Line 6:

For example, let's look at the work of Pete Savage:

  https://code.launchpad.net/~petesavage

A snapshot of the relevant part of the page is included here as at the time of writing:

attachment:petesavagebranches.png

As you can see, Pete has been pretty busy! He's published branches of at least 6 projects in Launchpad: ltsp, gisomount, student-control-panel, grasynco, reforany and tcm.

Launchpad includes the ability to host branches of your project code. It also allows you to register branches that are actually hosted elsewhere (because the revision control system we use is entirely distributed). Either way, Launchpad gives a convenient catalog of the code that is currently under development for the project.

Everybody has revision control

With CVS or SVN, there is a well-defined set of people who can make changes to the code that is centrally hosted in revision control. If you are not in that set, then you can't use the same revision control system as everyone else. Launchpad, and Bazaar, eliminate that problem. Everybody has full revision control, even if they are not yet a committer to the project. Anybody can make their own branches, at any time, without having to ask permission first.

For example, let's look at the work of Pete Savage:

A snapshot of the relevant part of the page is included here as at the time of writing:

attachment:petesavagebranches.png

As you can see, Pete has been pretty busy! He's published branches of at least 6 projects in Launchpad: ltsp, gisomount, student-control-panel, grasynco, reforany and tcm.

Anybody can publish branches

Not only can you create your own branches of ANY project in Launchpad, you can also publish those branches and have them show up in the listings of work in progress for the project. You don't need any special permission to have your work show up in the listings for any project on the site. Major project branches - that represent a stable line of development, or the trunk, do get special placement on those listings, but all the branches including yours will show up in the same place.

For example, take a look at the branches for Ubuntu's "Update Manager":

The relevant part of the page at the time of writing is included here:

attachment:updatemanagerbranches.png

You can see that at least 4 people have their own branches of Update Manager: Benjamin Montgomery, Michael Vogt, Sebastian Heinlein, and Brian Murray. In addition, there are two branches published by the "Ubuntu Core Development Team". We'll take a closer look at team branches shortly.

To publish a branch on your own server, all you need is the ability to write to that server (using FTP, SFTP, HTTP-Webdav or just by mounting the filesystem via NFS or another network protocol). Then you can expose the branch to the world using plain HTTP or HTTPS. For faster performance you might choose SFTP or the custom BZR protocol which is designed to allow very fast access to branches (a very active area of development in Bazaar right now!). Launchpad includes an SFTP server to which you can push your branches. You can push branches for existing projects, or you can publish "any old stuff" which is unclassified.

If you publish your branch on your own server, you might still want to register that branch with Launchpad. This means that Launchpad will monitor the branch, and let people interested in it know whenever you add new code to the branch. It also means that Launchpad will make a backup of your code which is accessible to everybody even if your server goes offline. And of course it means that your branch will show up in these listings.

All of this is specifically designed to lower the barriers to participation in your project. A new developer who wants to make a small contribution can do so without having first to get permission to change the development trunk. He can branch from the trunk, work on his feature with full revision control, publish that branch to Launchpad or any other web hosting service, and eventually ask for his work to be merged into the trunk by a developer who does have commit rights there.

Let's take a closer look at the process of [:ReviewersGuide/EasyBranching:creating a branch].

FeatureHighlights/BazaarHosting (last edited 2008-06-17 14:21:19 by localhost)