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

Re: atomic revprop commits at the RA level

From: Garrett Rooney <rooneg_at_electricjellyfish.net>
Date: 2006-08-14 21:50:30 CEST

On 8/14/06, David Glasser <glasser@mit.edu> wrote:

> OK. So let's say we're going to do this. Does this seems like a
> reasonable plan:
> * Revise svn_delta_editor_t to have a change_edit_prop whose default
> implementation returns an error, and upgrade all ~50 APIs that use it.
> * Make the change_edit_prop returned by svn_repos_get_commit_editorN
> actually set the txn property.
> * Modify the ra backends and frontends so that the editors returned
> from svn_ra_get_commit_editorN so that they support the property.
> * (Maybe) Add a boolean to r(epos|a)_replay which asks it to issue
> change_edit_prop calls.

This is basically the approach to take, yeah.

> Two questions:
> * While we're going to the trouble of changing svn_delta_editor_t and
> thus adding compat versions of ~50 APIs, does it make sense to make
> the new editor type opaque (so that future additions of
> default-erroring methods wouldn't require changing all the APIs)? Or
> would that lead to other problems (like breaking bindings or
> something)?

FWIW, there's a half finished attempt at reving the editor interface
available in the fs-atomic-renames branch. We talked about making it
opaque, but you_end_up_with_these_really_long_api_names_from_hell so
we decided to simply document that users are required to use the
constructor to create an editor, so we'll always have the ability to
add new functions (as long as we can give them sane default
implementations). If we had documented the requirement to use
svn_delta_default_editor() for creating all editors when we wrote it
(pre-1.0) in the first place we'd be in much less pain now, since we
could still add stuff at the end of the structure, just like we do
with svn_client_ctx_t now.

> * Should change_edit_props be allowed before open_root? If not, then
> we definitely need to make the change to r(epos|a)_replay. If so, some
> code in repos and ra_serf will have to be changed to do some
> initialization in get_commit_editor instead of in open_root (or to
> cache edit prop changes until open_root); I'm not sure why those
> editors choose to wait until open_root to really start things, and if
> it's important behavior to preserve.



To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Aug 14 21:52:38 2006

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.