2009/12/14 James Westby <jw+deb...@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/> -- ubuntu-distributed-devel mailing list ubuntu-distributed-devel@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-distributed-devel