On Feb 15, 2018, at 10:17 PM, Daniel Shahaf <d...@daniel.shahaf.name> wrote:
> 
> Nathan Hartman wrote on Thu, 15 Feb 2018 22:01 -0500:
>>> On Feb 15, 2018, at 4:11 PM, Daniel Shahaf <d...@daniel.shahaf.name> wrote:
>>> 
>>> Péter wrote on Thu, 15 Feb 2018 19:47 +0100:
>>> I'm not sure why you say "at least" 17 deltas.  The default value of
>>> max-linear-deltification (see fsfs.conf) is 16, meaning that no fulltext
>>> will require 17 delta applications to produce.
>>> 
>> 
>> Does this mean that when checking out HEAD from a repository with a 
>> large number of commits, the oldest revision it must access is HEAD - 
>> 16?
> 
> No.
> 
> Besides, if that were the case, then any commit to the ASF repository, which
> has over 200 projects, would have had to replicate the contents of 184 
> projects
> in full (including all tags and branches).  That would be impractical and 
> inefficient.
> 
>> In other words, is a compressed full text stored every 16 revisions?
> 
> No, for two reasons.
> 
> First, we're talking about revisions of a particular file here: not 'svn log 
> -q ^/'
> but 'svn log -q file.c'.
> 
> Second, Subversion uses skip-deltas, so a fulltext would be stored only
> every O(2**16) ≈ O(65k) revisions (of a particular file):
> 
> https://svn.apache.org/repos/asf/subversion/trunk/notes/skip-deltas
> 
> Cheers,
> 
> Daniel

Thanks. That's a very good explanation, and a very elegant solution. I 
especially like that past revisions are not rewritten to avoid introducing 
errors.

Reply via email to