On Mon, Jun 10, 2013 at 2:00 PM, Daniel Shahaf <d...@daniel.shahaf.name>wrote:

> From fs_fs.c:choose_delta_base():
>
>     svn_boolean_t maybe_shared_rep = FALSE;
>     if (!props && base->data_rep && svn_fs_fs__id_rev(base->id) >
> base->data_rep->revision)
>       maybe_shared_rep = TRUE;
>
> The third conjunct was intended to answer the question "Is
> base->data_rep a shared rep", but that answer is no longer complete: the
> condition will false-negative in the presence of intra-revision shared
> reps (i.e., two node-revs created in the same revision that share a rep
> between them).
>

Actually, the comment above that code already states that
there may be false negatives. I can't think of a way to prevent
that other than always following the delta chain.

However, the degenerate case has always been a possibility
since the introduction of rep sharing. 1.8 simply makes an
attempt at detecting it in most cases. I find it hard to come
up with a plausible usage scenario that would result in an
unbound dependency chain which does not get detected
eventually by the above code.

-- Stefan^2.

Reply via email to