[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Bug: "svnadmin dump --incremental --deltas" gives too much output

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Tue, 30 Sep 2008 14:09:11 -0400

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

This is an archived mail posted to the Subversion Dev mailing list.