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.