Rewriting Ubuntu branches

James Westby jw+debian at jameswestby.net
Mon Dec 14 00:48:17 GMT 2009


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.

  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.

  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?

How does this plan sound? Does anyone want to take on a particular part of
it?

Thanks,

James



More information about the ubuntu-distributed-devel mailing list