subversion-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Greg Stein <gst...@gmail.com>
Subject Re: Why do we check the base checksum so often?
Date Mon, 06 Feb 2012 20:44:33 GMT
On Mon, Feb 6, 2012 at 15:41, C. Michael Pilato <cmpilato@collab.net> wrote:
> On 02/06/2012 03:21 PM, Hyrum K Wright wrote:
>...
>> Receivers (such as ours) are making unreasonable assumptions, in my
>> opinion.  The docs for apply_textdelta() read thusly:

It is hand-wavey voodoo, but that is how it has been built. There is
an implicit assumption between the Ev1 driver and receiver. Too late
now...

[and Ev2 was designed to try and get rid of these silly assumptions]

>>
>>    * @a base_checksum is the hex MD5 digest for the base text against
>>    * which the delta is being applied; it is ignored if NULL, and may
>>    * be ignored even if not NULL.  If it is not ignored, it must match
>>    * the checksum of the base text against which svndiff data is being
>>    * applied; if it does not, @c apply_textdelta or the @a *handler call
>>    * which detects the mismatch will return the error
>>    * SVN_ERR_CHECKSUM_MISMATCH (if there is no base text, there may
>>    * still be an error if @a base_checksum is neither NULL nor the hex
>>    * MD5 checksum of the empty string).
>>
>> All the docs guarantee is that this checksum must match the base
>> checksum against which the delta is being applied.  They don't assume
>> that the receiver has the content, nor that it will even pay attention
>> to the checksums themselves.  If the receiver has done some kind of
>> backdoor secret handshake that's outside the scope of the delta
>> editor, and it should (reasonably) not care.
>>
>> I maintain that it is still legal (though perhaps not very useful) for
>> the base checksum supplied by apply_textdelta() to be whatever
>> apply_textdelta() wants it to be.
>
> Sorry, Hyrum, but I sincerely believe you are trying to bend this API to
> your will just to work around a tough engineering task.  :-)

<pile mode="on">

  Agreed :-)

</pile>

>...

Cheers,
-g

Mime
View raw message