[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)

From: Bert Huijben <bert_at_qqmail.nl>
Date: Wed, 6 Jan 2010 14:28:01 +0100

> -----Original Message-----
> From: Kamesh Jayachandran [mailto:kamesh_at_collab.net]
> Sent: woensdag 6 januari 2010 14:00
> To: dev_at_subversion.apache.org
> Subject: [PATCH] Make svn clients indicate their operation name to
> backend(right now only to DAV)
>
> Hi All,
>
> This patch is with respect to the original thread
>
> http://mail-archives.apache.org/mod_mbox/subversion-
> dev/201001.mbox/browser
>
> Once this patch gets committed I can commit the mod_dav_svn change to
> handle the original commit via outdated proxy issue.
>
> This Patch revs the following public APIs,
>
> 'svn_client_uuid_from_url', 'svn_client_open_ra_session' and
> 'svn_ra_open3'.

I have a few high level questions about this patch:

Why do you rev svn_client_uuid_from_url?

I would think that that function is a high level API, so it would be an
operation by itself.

(looking at svn_client.h) What should I put in there as client that just
needs the uuid or verify that the repository exists?

"checking-uuid-for-visualization-to-my-great-users"?

I don't think we should rev the svn_client_ API for this specific change
here; especially since older clients will not pass anything anyway.
libsvn_client should fill that high level operation for library users or the
value is of no use on the server.

And it should never be forwarded to master servers as the uuid is supposed
to be constant per repository.

(BTW. the api is new in 1.7, so it needs no revving at all)

Then on to the rest of the patch:
> For ra_neon and ra_serf layers it sets the http client header SVN-ACTION
> with the concerned svn command name.
>
If the operation is a plain string that can be set by any future client, how
is the server to understand what the user wants? How can the server
understand a new 'shelve' command we might add in Subversion 1.9?

mod_dav_svn only knows RA operations and doesn't understand high level
commands; we would have to add this knowledge.

Shouldn't the individual RA operations tell whether the user needs access to
the master or the slave?

Thinking a bit further about that last issue... What if the session is
reused for e.g. requests like 'svn info', 'svn update' and then a 'svn
commit'.
Our standard client libsvn_client can't do this, but other clients can
certainly do that.

There is nothing in the ra api that forbids using it that way, but just
specifying a high level operation at open time doesn't tell enough about
what the clients application intent is.

Maybe we should just add a boolean to requests indicating whether to forward
to a master? That seems like a much simpler solution, that we could possibly
port back to older subversion releases.

        Bert

> With & Without this patch mergeinfo_test-8 fails both over ra_neon and
> ra_serf.
>
> If there are no objections I will commit this change in next 2 days.
>
> With regards
> Kamesh Jayachandran
Received on 2010-01-06 14:28:22 CET

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