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 I feel).
http://bzr-playground.gnome.org What you see on this page is a simple HTML file with some server side includes to populate the modules. It also is themed nicely to look like an integral part of the GNOME infrastructure. 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 trunk and branches that were there for the projects. The imports were initially done by a GNOME community member (John Carr) who used the bzr-svn plug-in. These imported branches are kept in sync with the Subversion repository by listening to the Subversion commit mailing list and updating the branches as necessary. We also created users on the machine for all the GNOME members who had Subversion commit rights, and they are able to push branches to that machine. A server side plug-in 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 customisation AFAIK) /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 in sync bzr server side plug-in used by the client's helper script (also explained in the help) 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 to /bzr/thumper/gedit/devel -- a branch of trunk (other branches at this level too) 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/ tthurman-metacity 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 branch. * 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 default. [ taken from http://live.gnome.org/Bazaar ] Pushing user branches to the playground is done with `bzr push` as the script adds some configuration entries to .bazaar/locations.conf to make this easy (uses bzr+ssh). This setup was decided as it gave the user a single working tree, which many GNOME developers like as they often have many object files, and switching to a new branch reduces recompilation for files that are unchanged. Right now we have some apache rewrite magic making the HTTP urls pretty, but are looking into loggerhead modifications to make loggerhead understand trunk and user branches. In the situation where a project moves from Subversion to Bazaar formally, the directory permissions on the project's repository and branches would be altered to allow writing from 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. Tim -- https://launchpad.net/~thumper
signature.asc
Description: This is a digitally signed message part.
