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.
> 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