On Mon, Jun 10, 2013 at 1:23 PM, Daniel Shahaf <danielsh_at_apache.org> wrote:
> On Sun, Dec 09, 2012 at 02:05:48PM -0000, stefan2_at_apache.org wrote:
> > Author: stefan2
> > Date: Sun Dec 9 14:05:47 2012
> > New Revision: 1418963
> >
> > URL: http://svn.apache.org/viewvc?rev=1418963&view=rev
> > Log:
> > Representation sharing interacts badly with our skip-delta algorithm
> > as the former potentially extends the delta chain without making that
> > immediately visible in the noderev tree used by choose_delta_base.
> >
> > This patch will (usually) detect thoses cases and limit the delta chain.
> > When traversing the noderev history, we assume that reps stored in the
> > same revision as the noderev are not shared (which they might still be)
> > but all others potentially are. In the latter case, we will simply
> > follow the result representation's delta chain and check whether it
> > is longer than a reasonable limit. If it is, start a new chain.
> >
> > * subversion/libsvn_fs_fs/fs_fs.c
> > (choose_delta_base): detect most cases of shared reps and limit the
> > length of the delta chain in that case.
>
> > @@ -7149,12 +7150,83 @@ choose_delta_base(representation_t **rep
> > + /* verify that the reps don't form a degenerated '*/
> > return SVN_NO_ERROR;
>
> Scalpel. What is that comment referring to?
>
Good catch. This is a fragment of a comment that
referred to degenerated (O(N) instead of O(log N))
delta chains. The if() section above that spot takes
care of this case.
Removed in r1491425.
-- Stefan^2.
Received on 2013-06-10 13:48:34 CEST