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

Re: [PATCH] Make svn clients indicate their operation name to backend(right now only to DAV) Version 2

From: C. Michael Pilato <cmpilato_at_collab.net>
Date: Tue, 12 Jan 2010 13:38:34 -0500

Kamesh Jayachandran wrote:
> Hi All,
> Last week I posted the patch to implement 'svn client' to identify the
> svn operation they are about to do with a given ra_session.
> Following thread has the detailed discussion.
> http://mail-archives.apache.org/mod_mbox/subversion-dev/201001.mbox/%3C4B448959.1070400@collab.net%3E
> Below is the summary:
> Concern/Suggestion 1:
> Michael Pilato and Philip Martin were suggesting to tweak
> libsvn_ra_(serf|neon) to detect the operation rather than making a
> change across all layers from the simplicity point of view.
> My answer to 1:
> I feel it would be too hackish to tweak one general API inside these
> modules to flag 'commit or write' operation to the server when the
> solution I propose handles this in a transparent way.

I'm sorry, but did you say "transparent"? What's transparent about bubbling
an RA-layer hack all the way up into the client?! A "transparent" solution
is one that preserves the existing transparency of the mirroring subsystem.
 A "transparent" solution is one that doesn't allow ignorant third-party
consumers of the Subversion APIs to accidentally break their proxy setups
because they decide they wanted to pass "checkin" instead of "commit" as the
innocuous-appearing 'high_level_svn_operation' parameter.

There *must* be a better way to do this.

subversion/libsvn_ra_neon/commit.c:apply_revprops() has this comment:

  /* ### we should use DAV:apply-to-version on the CHECKOUT so we can skip
     ### retrieval of the baseline */

I looked a little bit into this. IIUC, we can theoretically avoid the
problematic PROPFIND altogether by passing this special (yet
part-of-an-existing-standard) flag in the CHECKOUT request. Currently,
though, mod_dav_svn doesn't handle the flag. So there's still a server-side
change needed, but at least its one that would take us closer to better
WebDAV handling. Maybe you could explore this option instead?

C. Michael Pilato <cmpilato_at_collab.net>
CollabNet   <>   www.collab.net   <>   Distributed Development On Demand
Received on 2010-01-12 19:39:12 CET

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