On Mon, Jun 10, 2013 at 2:00 PM, Daniel Shahaf <d.s_at_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) >
> 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.
Received on 2013-06-11 16:56:41 CEST