On 26.10.2015 17:45, Evgeny Kotkov wrote:
> Stefan Fuhrmann <stefan.fuhrmann_at_wandisco.com> writes:
>>> As for /trunk, I think that we could do that, so I sketched this option in
>>> the attached patch.
>> The patch looks o.k.
> Thanks for giving this patch a look.
>
> I examined the differences between these functions, svn_repos__compare_files()
> and svn_fs_contents_different(), and I think that we also have a problem in
> FSFS's implementation of the new svn_fs_contents_different() API in 1.9.x.
> The implementation relies on representation_t.expanded_size value when doing
> the comparison. If this value is zero, a representation is considered empty,
> and two empty representations are considered equal.
>
> The problem is that the expanded_size can be zero for empty files and also for
> some of the PLAIN representations, which are not empty. If I am not mistaken,
> we have a workaround for this in /trunk — r1673875 [1] and follow-ups, but not
> in Subversion 1.9.
To be sure, I just read through the code again
and it seems that on /trunk, expanded_size
indeed always has correct value.
> Hence, the new svn_fs_contents_different() API can fail to
> distinguish different contents in 1.9.x under the circumstances described in
> issue 4554 [2].
So, svn_fs_contents_different is broken in 1.9.x
and needs to be fixed. I'll take care of that.
-- Stefan^2.
Received on 2015-11-06 10:08:15 CET