[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: Paul Charlton <techguru_at_byiq.com>
Date: Tue, 30 Sep 2008 18:11:46 -0700

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
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: dev-help_at_subversion.tigris.org
Received on 2008-10-01 03:12:09 CEST

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