I've been sitting on this thread for a looooooooong time. Still no time to
really invest here, but I filed issue #3353 so we don't lose this discussion
forever.
Paul Charlton wrote:
> good spelunking! your matrix and reduction show how the code actually behaves ... although I am not sure which of the dumps is actually useful for backup or repository synchronization.
>
> best,
> Paul
>
> -----Original Message-----
> From: C. Michael Pilato [mailto:cmpilato_at_collab.net]
> Sent: Tuesday, September 30, 2008 11:09 AM
> To: Paul Charlton
> Cc: dev_at_subversion.tigris.org
> Subject: Re: Bug: "svnadmin dump --incremental --deltas" gives too much output
>
> Paul Charlton wrote:
>> for completeness, the doc comment in "svn_repos.h" covers the behavior
>> of "--deltas" accurately, in that it states:
>>
>> * If @a use_deltas is @c TRUE, output only node properties which have
>> * changed relative to the previous contents, and output text contents
>> * as svndiff data against the previous contents. Regardless of how
>> * this flag is set, the first revision of a non-incremental dump will
>> * be done with full plain text. A dump with @a use_deltas set cannot
>> * be loaded by Subversion 1.0.x.
>
> Wow. What a complex matrix of behavior. If I'm reading the code correctly, the first revision of a dump will use fulltexts instead of binary deltas regardless of whether "--deltas" was provided, unless both --deltas and --incremental were provided (in which case it uses binary deltas). I think.
> Is this right?
>
> deltas | incrmnt | 1st rev | behavior
> --------+---------+---------+------------------------
> 0 | 0 | 0 | changed paths, fulltext
> --------+---------+---------+------------------------
> 0 | 0 | 1 | full tree, fulltext
> --------+---------+---------+------------------------
> 0 | 1 | 0 | changed paths, fulltext
> --------+---------+---------+------------------------
> 0 | 1 | 1 | changed paths, fulltext
> --------+---------+---------+------------------------
> 1 | 0 | 0 | changed paths, deltas
> --------+---------+---------+------------------------
> 1 | 0 | 1 | full tree, fulltext
> --------+---------+---------+------------------------
> 1 | 1 | 0 | changed paths, deltas
> --------+---------+---------+------------------------
> 1 | 1 | 1 | changed paths, deltas
>
> So, reduction brings (check me, here):
>
> incremental = (incremental || (! first_rev));
> deltas = deltas && !(!incremental && first_rev)
> = deltas && (incremental || !first_rev);
>
> --
> C. Michael Pilato <cmpilato_at_collab.net>
> CollabNet <> www.collab.net <> Distributed Development On Demand
>
>
--
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1007805
Received on 2009-01-06 17:20:45 CET