Daniel Shahaf writes:
> Here's a stab at implementing 'svnrdump dump --incremental'.
> It does what 'svn checkout' does to get the first revision --- namely,
> calls svn_ra_do_update2() with start_empty=TRUE.
> TODO: it passes send_copyfrom_args=TRUE to svn_ra_do_update2(), so it
> still has to go by itself and requests fulltexts (or, copyfrom fulltexts
> and txdeltas against those) for files that have been copied. Currently,
> for a cp-with-changes, it dumps nothing (neither fulltext nor delta).
> TODO: dump revprops for the first revision. (haven't tested this)
Overall, the path appending logic seems to be alright. I'd thought
that rebasing the RA session would be cleaner, but you explained to me
over IRC that it's not possible due to authz issues- issue
#3242. My primary concern is handling copyfrom references where
copyfrom_rev < start_revision. We'd have to fetch the full text of the
file from history to apply the text delta to, and this requires us to
make an RA call in the middle of a replay.
Using two RA sessions (and possibly keeping both open so we can reuse
them) might work if there are few of these references. However, we
discussed that either of the sessions might timeout if one operation
takes too long to complete.
The whole business seems messy to me, and we should ideally like to be
able to avoid having two RA sessions. I'd like to attack the problem
at the RA API level itself, but this can be very non-trivial.
Can we get some inputs from the others on this?
Received on 2010-09-25 22:15:25 CEST