On Mon, Feb 6, 2012 at 15:41, C. Michael Pilato <cmpil...@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