please check out weave-format branch

John A Meinel john at arbash-meinel.com
Fri Sep 23 17:19:25 BST 2005


Martin Pool wrote:
> On 23/09/05, John Arbash Meinel <john at arbash-meinel.com> wrote:
>
>
>>4) What is supposed to be in "ancestry.weave"? How does it work when you
>>do a merge? In looking through the file, it looks like each revision
>>adds only one new entry, shouldn't some of them add 2? If I understand
>>the idea, you are trying to have a file which can be queried to get the
>>complete ancestry for a given revision. But I don't see how it handles
>>branching.
>
>
> Version R of the ancestry file contains a list of every revision
> merged into R plus R, ordered so that parents come before their
> children.

Interesting. I'm still curious how the branching manages to merge things
together properly. But I expect it works, otherwise you wouldn't be
using it. :)

>
> Straight-line commits therefore add just a single line, being their
> own revision id.
>
> When you do a merge, the ancestry of the merged revision will be the
> set union (preserving order) of the merged parents.
>
> It handles branching because weaves can hold a branched DAG of
> revisions within them.  (Run "weave.py toc ancestry.weave" to see it.)
>
> The ancestry list is interesting in for several algorithms.  If we
> calculate the set intersection of the ancestry of two revisions we
> have a list of the versions merged into both of them, and therefore a
> list of what is new on either side.  By feeding those lists into the
> weaves for each file, we can see what lines are common or new.  We can
> also use the ancestry list to find a good 3-way base, without needing
> to traverse the graph.
>

Certainly, I've often wished that we had a more complete ancestry file
(with revision-history and merged revisions). This seems like a nice way
to do it.

John
=:->

> --
> Martin
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 253 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20050923/a13c183c/attachment.pgp 


More information about the bazaar mailing list