On 15.03.2018 18:50, Philip Martin wrote:
> Philip Martin <philip_at_codematters.co.uk> writes:
>
>> Evgeny Kotkov <evgeny.kotkov_at_visualsvn.com> writes:
>>
>>> Philip Martin <philip_at_codematters.co.uk> writes:
>>>
>>>> That works as expected, but vary the cache size of the load process and
>>>> it fails. The load succeeds with -M64 and smaller but fails with -M65
>>>> and larger:
>>> [...]
>>>
>>> Maybe this behavior could be related to the cache size threshold in svnadmin
>>> that enables the block read feature in fsfs (currently set to 64 MB, as per
>>> svnadmin.c:BLOCK_READ_CACHE_THRESHOLD).
>> Sounds plausible.
> It causes different code to run, in particular the window cache is
> enabled. I'm not familiar with this code but the problem seems to be in
> cached_data.c:parse_raw_window() where the svndiff version is hard-coded
> to 1 in the call to svn_txdelta_read_svndiff_window. Changing that to 2
> allows the regression test to pass, the question is where should the
> correct value be obtained?
The svndiff version is embedded in the first 4 bytes of the window data
and should be parsed from there.
-- Brane
Received on 2018-03-15 19:03:06 CET