[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Savannah-hackers-public] Bazaar codehosting
From: |
Tim Penhey |
Subject: |
[Savannah-hackers-public] Bazaar codehosting |
Date: |
Mon, 21 Jul 2008 16:33:07 +1200 |
User-agent: |
KMail/1.9.9 |
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.
- [Savannah-hackers-public] Bazaar codehosting,
Tim Penhey <=