python weave code
Martin Pool
mbp at sourcefrog.net
Wed Jun 29 03:40:20 BST 2005
I can see a way to store weaves in an append-only form.
People who've used arch tend to strongly appreciate its write-once
format: with few exceptions, once files are written they are not
updated. This makes mirroring and access over dumb protocols easier,
and gives good assurance that a bug in arch or elsewhere won't destroy
any existing data. On the other hand, it tends to slow down some
operations, and can be seen as optimization for the uncommon case (of
corruption.)
The weave code could write out a series of forward deltas expressed in
terms of additions to a weave rather than directly on a text. To
recreate a text one would first play forward all of those updates to
recreate the weave, and then unweave it. Possibly the two operations
can be fused to run faster. This should give the robustness features of
write-once, while still retaining the weave benefits of aiding merge and
fast annotation. There are various options for storing the deltas: one
after the other in one or two files (like revfile), or we could store a
container holding all the weave updates for all files changed by a
particular revision.
I'm not saying this is the right way to go but it is interesting.
--
Martin
More information about the bazaar
mailing list