[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] Re: netsync question
From: |
Bruce Stephens |
Subject: |
[Monotone-devel] Re: netsync question |
Date: |
Sat, 29 Apr 2006 12:54:35 +0100 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) |
Markus Schiltknecht <address@hidden> writes:
> On Sat, 2006-04-29 at 12:15 +0100, Bruce Stephens wrote:
>> Well, you couldn't use *only* backward deltas. If you've got
>> A->B->C->D and you want to send that to someone who's got A, it's no
>> good just sending the backward deltas D->C, C->B, B->A.
>
> Uhm.. why not? Couldn't this 'someone' just apply the backward deltas
> with a 'patch -R' sort of? I begin to question my understanding of a
> 'delta'...
The deltas aren't (generally) reversible. A delta from A to B is a
sequence of copying byte sequences from A and inserting new byte
sequences. (Very like xdelta.)
[...]
> ...except if you send the fulltext of D. Which is acceptable for
> initial pulls. In case of a subsequent pull, I guess
> 'all-or-nothing' is acceptable.
>
> Plus it would allow to fetch only the most recent history. Often
> people don't care about all the history and only want the most
> recent revision. Monotone should then be able to gracefully handle
> missing revisions and offer to fetch them when needed.
Currently that's not how things work. Right now if you have a
repository then you can verify everything in it, right back to its
beginning.
If you had only the last few revisions, you'd need to take something
on faith. If I got some late revisions of net.venge.monotone from a
corrupted (or malicious) repository, then it might be that I couldn't
fill in earlier revisions from venge.net, and I wouldn't be able to
tell without checking.
I'm not sure whether that actually matters; maybe that would make a
coherent system, too.
But it would be different.
[...]