Rewriting Ubuntu branches
Martin Pool
mbp at canonical.com
Mon Dec 14 01:55:06 GMT 2009
2009/12/14 James Westby <jw+debian at jameswestby.net>:
> Hi,
>
> I wanted to split this out of the large mail so that we could complete
> a design of how this would work.
>
> Here's my initial proposal based on the feedback from that thread.
>
> 1) bzr-builddeb decorates pull, merge and perhaps a couple of other
> commands to catch the diverged error, and check whether the branch
> has been rewritten so that we can prompt the user with the correct
> way to proceed.
In general whenever we're decorating commands we should ask whether
there is a more appropriate place to do the extension. I think here
perhaps it would be better to add a hook called when an operation is
going to fail due to divergence, giving it the chance to clean it up.
That could be useful to other people.
> 2) We ship map files in some known location, package-import.ubuntu.com say.
> These contain revision id pairs and file id pairs corresponding to
> the old branches and the new branches. Is just listing plain file ids
> safe, or do we need (revision id, file id) pairs to do this correctly.
I'm not sure I understand, perhaps due to reading this out of order.
If you want to express: 'revision id R with inventory I is equivalent
to R' with I'' then just listing the filed ids should be enough?
>
> 3) Either bzr-rewrite itself, of something based on the code in there
> will be used to rewrite a given branch using the information in the
> map files.
>
> Open questions:
>
> * Should we bother with file id maps, or just match based on path?
> * Should we put the old revision ids in to revision properties of
> the new revisions? This could be the marker for the decorated
> commands, and make the map files smaller. It does inflate the
> size of the branches for ever though. If we don't, what should
> the marker be?
It sounds like this is going towards a more general 'replaces'
relationship between revisions, which ought to be treated as part of
the merge graph but generally not shown in logs etc?
--
Martin <http://launchpad.net/~mbp/>
More information about the ubuntu-distributed-devel
mailing list