Diff for "FeatureHighlights/BazaarHosting"

Not logged in - Log In / Register

Differences between revisions 1 and 10 (spanning 9 versions)
Revision 1 as of 2007-03-25 12:55:10
Size: 3543
Editor: 81
Comment: quick overview of branch hosting
Revision 10 as of 2007-03-29 18:54:13
Size: 4498
Editor: 81
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Bazaar branch hosting =
Line 2: Line 3:
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. Launchpad can host branches of your project's code, using a revision control system called Bazaar. Since Bazaar is entirely distributed, it also allows you to register branches that are actually hosted elsewhere. As you've seen in our first examples, the project that develops Bazaar is itself hosted on Launchpad.

Regardless of where your code is hosted, Launchpad makes it accessible through a convenient catalog.

Bazaar is a very cool revision control system, powerful, flexible and fast. It's written in Python, so it's also easy to embed and modify. You can find out more [http://bazaar-vcs.org on the Bazaar web site].
Line 6: Line 11:
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. 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. You can set up read-only access for other users, but they won't be able to keep track of their changes since they are not allowed to record those changes on the central server.

Bazaar eliminates that problem. Everybody has full revision control over their own version of the repository, even if they are not yet official committers 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:

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

Here's the part of the page we're interested in, as it looked at the time of writing:

attachment:petesavagebranches.png

As you can see, Pete has been pretty busy! He's published branches of at least six projects in Launchpad: ltsp, gisomount, student-control-panel, grasynco, reforany and tcm.
Line 10: Line 27:
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. 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. Importantly, you don't need any special permission to have your work show up in the listings for any project in Launchpad.

Major project branches - representing 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.
Line 20: Line 39:
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. You can see that at least four 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.
Line 22: Line 41:
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. === Publishing branches with Bazaar and Launchpad ===
Line 24: Line 43:
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. You can publish a branch on any server that you can write to, using FTP, SFTP, HTTP-Webdav or just by mounting the filesystem via NFS or another network protocol. Once it's published, you can share the branch with the world using plain HTTP or HTTPS. For faster performance you can use 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!
Line 26: Line 45:
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. 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.

=== Mirroring external Bazaar branches with Launchpad ===

If you have a branch published on your own server, you can still register it with Launchpad. Launchpad will monitor it and let interested people know whenever you add new code.

Launchpad will also 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 the project's listings.

=== Lowering barriers to participation ===

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 to first 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.

Bazaar branch hosting

Launchpad can host branches of your project's code, using a revision control system called Bazaar. Since Bazaar is entirely distributed, it also allows you to register branches that are actually hosted elsewhere. As you've seen in our first examples, the project that develops Bazaar is itself hosted on Launchpad.

Regardless of where your code is hosted, Launchpad makes it accessible through a convenient catalog.

Bazaar is a very cool revision control system, powerful, flexible and fast. It's written in Python, so it's also easy to embed and modify. You can find out more [http://bazaar-vcs.org on the Bazaar web site].

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. You can set up read-only access for other users, but they won't be able to keep track of their changes since they are not allowed to record those changes on the central server.

Bazaar eliminates that problem. Everybody has full revision control over their own version of the repository, even if they are not yet official committers 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:

Here's the part of the page we're interested in, as it looked at the time of writing:

attachment:petesavagebranches.png

As you can see, Pete has been pretty busy! He's published branches of at least six 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. Importantly, you don't need any special permission to have your work show up in the listings for any project in Launchpad.

Major project branches - representing 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 four 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.

Publishing branches with Bazaar and Launchpad

You can publish a branch on any server that you can write to, using FTP, SFTP, HTTP-Webdav or just by mounting the filesystem via NFS or another network protocol. Once it's published, you can share the branch with the world using plain HTTP or HTTPS. For faster performance you can use 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.

Mirroring external Bazaar branches with Launchpad

If you have a branch published on your own server, you can still register it with Launchpad. Launchpad will monitor it and let interested people know whenever you add new code.

Launchpad will also 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 the project's listings.

Lowering barriers to participation

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 to first 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)