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
Received on 2008-09-30 20:09:26 CEST