Overlay repositories
Steve Alexander
steve at canonical.com
Fri Sep 22 09:34:08 BST 2006
I want to propose a new feature: Overlay repositories. That is, a
repository can point to other repositories, and bzr will use this
pointer to find the revision data it needs.
Why do I want such a feature?
I'm one of the people who develops the Launchpad software. Our
development process goes a bit like this.
We have a PQM that manages a collection of branches called "rocketfuel".
I can read all the rocketfuel branches, but not write to them. One of
the rocketfuel branches, devel, is the code mainline.
To work on a feature, I do the following.
1. I make my own branch, on my laptop, from rocketfuel's mainline.
2. I do some work, merging from mainline from time to time.
3. I push my branch onto a server so that PQM and also other
developers can see that branch.
4. Eventually, I ask PQM to merge my branch into mainline.
On the server, the PQM branches are in a repository, and all my branches
are in a repository. Each developer has his own repository that only
they can write to.
This process works well, but there are a couple of problems.
- I end up pushing data to the server that already exists on the
server. That is, data for revisions I have merged from the PQM managed
branch, which I then push into my repository. This makes pushes take
longer.
- There is more data stored on the server than there needs to be. Say
we have ten developers. That means there are ten copies of the PQM
branch's history on the server when there really need be only one.
I work around the first problem by, before I push my branch, logging
into the server, and pulling into myrepository/pqm-mainline from PQM's
mainline. That is, I make sure my repository has all the revisions from
the PQM mainline, so there is less that I need to push.
Now, if my repository had a pointer to PQM's repository, and bzr knew
how to take advantage of this, then I wouldn't need to log into the
server and add revisions to my repository. My repository would be an
"overlay" on PQM's repository, and this would work even though I cannot
write to PQM's repository.
--
Steve Alexander
More information about the bazaar
mailing list