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

delta_dirs(), meet delta_dirs()

From: Malcolm Rowe <malcolm-svn-dev_at_farside.org.uk>
Date: 2006-03-07 16:33:31 CET

Hello all,

I've been looking to make some changes to the dir-delta code (providing a
stable [sorted] output for 'svn diff'), and I'm wondering if someone could
explain why we appear to have two (near-)identical sets of functionality
to drive an editor from one rex/txn to another?

Specifically, we have:

* svn_repos_begin_report() et al, implemented in libsvn_repos/reporter.c,
which creates a txn from a source root, allows the user to modify it,
then deltas it against the target root. This is used by ra_local and
svnserve (for update, switch, status -u, and diff), and by mod_dav_svn
(for everything, pretty much).

* svn_repos_dir_delta(), implemented in libsvn_repos/delta.c, which
deltas a source root to a target root. This is used by 'svnadmin dump',
and by mod_dav_svn (as part of 'switch', it looks like, in addition to
the above).

[Note: ignore the comments that suggest that svn_repos_finish_report()
is implemented using svn_repos_dir_delta() - this is a lie, though it
illustrates that the two were intended to have the same functionality.]

Can anyone suggest any reason why svn_repos_dir_delta() can't be
implemented in as a wrapper to svn_repos_begin_report() et al, and almost
all of libsvn_repos/delta.c deleted?

If not, I'll see if I can work up a patch to do just that.

(The only thing I can see is that svn_repos_dir_delta() can be told not to
send entryprops, so we'd need to slightly rev svn_repos_begin_report(),
but this isn't a good reason to keep maintaining 30+Kb of semi-duplicate
code, IMO.)


To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Mar 7 16:35:25 2006

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