[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Savannah-hackers-public] Bazaar codehosting
[Savannah-hackers-public] Bazaar codehosting
Mon, 21 Jul 2008 16:33:07 +1200
Hi Sylvain and savannah hackers,
I wanted to touch base and show what we have set up for the GNOME community,
as this is what we were trying to communicate earlier (somewhat unsuccessfully
What you see on this page is a simple HTML file with some server side includes
the modules. It also is themed nicely to look like an integral part of the
The "Help" link goes to a wiki page that was created to help document the
process for the
developers who are wanting to try things out.
A complete import was done of the GNOME Subversion repositories to import the
branches that were there for the projects. The imports were initially done by
community member (John Carr) who used the bzr-svn plug-in. These imported
are kept in sync with the Subversion repository by listening to the Subversion
mailing list and updating the branches as necessary.
We also created users on the machine for all the GNOME members who had
commit rights, and they are able to push branches to that machine. A server
was written to help with the initial branching and population of the
developer's server side
repositories. These are explained on the help page.
On the technical side we have the following:
/srv/bzr -- location of all the bazaar repositories and branches, also
symlinked from root as /bzr
/srv/gnome-loggerhead -- a custom loggerhead with themed templates (that is
the limit of the
/srv/bzr.gnome.org -- the static web content for the theming and initial pages
apache config to serve the static content, and fall through to loggerhead
(some rewrite magic)
several cron jobs to keep the list of modules and developers up to date (used
as server side includes
in the static pages)
incoming mail from the commit list and a script that keeps the trunk imports
bzr server side plug-in used by the client's helper script (also explained in
The branch layout is as follows:
/bzr/gnome -- the location of the imported branches
/bzr/gnome/gedit -- the shared repository for the gedit project
/bzr/gnome/gedit/trunk -- the trunk branch for gedit
/bzr/gnome/gedit/branches/gnome-2-22 -- a branch of gedit imported from
Subversion (around 25
other branches are also available for this project)
Each project has its own shared repository in the /bzr/gnome area. This
location is restricted
to the user that does the actual imports (a service type user).
Now a user (I'll use thumper) who has used the script to set up their hosting
for gedit would
have a layout like:
/bzr/thumper/gedit -- a shared repository that only thumper has write access
/bzr/thumper/gedit/devel -- a branch of trunk (other branches at this level
Any one can get a copy of any of the trunk branches over http like:
bzr branch http://bzr-playground.gnome.org/gedit/trunk gedit
or some users branch using:
bzr branch http://bzr-playground.gnome.org/~tthurman/metacity/vectacity/
The helper script was made to make getting started with Bazaar even easier.
./bzr-gnome-setup.py module [branch-name]
* Create a repository at ~/gnome-bzr/repos/$module.
* Create a branch under ~/gnome-bzr/repos/$module/$branch.
* A working tree will be created under ~/gnome-bzr/src/$module for the new
* A matching repository will be created on bzr-playground.gnome.org for you to
push your changes to.
* Bazaar will be configured to push the branch to bzr-playground.gnome.org by
[ taken from http://live.gnome.org/Bazaar ]
Pushing user branches to the playground is done with `bzr push` as the script
configuration entries to .bazaar/locations.conf to make this easy (uses
This setup was decided as it gave the user a single working tree, which many
like as they often have many object files, and switching to a new branch
for files that are unchanged.
Right now we have some apache rewrite magic making the HTTP urls pretty, but
into loggerhead modifications to make loggerhead understand trunk and user
In the situation where a project moves from Subversion to Bazaar formally, the
permissions on the project's repository and branches would be altered to allow
the "core" team for that project.
Now I'm not sure how the layout above differs from what you have now on
Savannah, or what
level of integration you you are wanting with Savannah.
Description: This is a digitally signed message part.
- [Savannah-hackers-public] Bazaar codehosting,
Tim Penhey <=