Next message: Clemm, Geoff: "RE: conference call?"
Date: Mon, 28 Aug 2000 20:00:04 -0700
From: Greg Stein <gstein@lyra.org>
To: ietf-dav-versioning@w3.org
Message-ID: <20000828200004.D14349@lyra.org>
Subject: MERGE response body
In Subversion, I'm planning to MERGE an activity into the (version selector)
collection(s). (no workspaces) However, the response body isn't quite as
rich as I'd like.
Specifically, consider the MERGE body right now: it returns a set of URLs of
the resources that were affected. But it says nothing more. You must turn
around and issue a set of PROPFIND or REPORT requests to find out the state
of the repository after the MERGE.
To be concrete: I want the MERGE to return the DAV:getetag and DAV:target
values for each affected resource.
Why?
*) DAV:getetag returns the new/updated etag which allows the client to use
it in a GET at some point in the future. This is especially important
when the client wants to fetch a "diff" format according to:
Delta Encoding in HTTP:
http://www.ietf.org/internet-drafts/draft-mogul-http-delta-05.txt
*) DAV:target returns the URL for the new version resource. Very important
if I want to know what my local state now represents. Before the merge, I
might have /$svn/his/project/file/56 and after ../57. I'd rather this is
returned in the MERGE than a followup query.
Note that the result of a MERGE is a set of (disjoint) resources. It could
be very cumbersome to iterate over those resources fetching updated property
information. (e.g. my repository has 10,000 files and I update 2 in separate
subtrees; how do I minimize the server interaction?)
I would suggest that we change the MERGE request body to something like
this:
<!ELEMENT merge (no-auto-merge?, prop?)>
[ note the current draft is missing the "?" on no-auto-merge ]
The DAV:prop element would be similar to a PROPFIND/prop: it is merely
specifying names of properties to return.
The MERGE response then becomes:
<!ELEMENT merge-response (update-set?, ignored-set?)>
<!ELEMENT update-set (response*)>
<!ELEMENT ignored-set (href*)>
[ note the current draft does not include "?" in the merge-response child
elements ]
The DAV:response element follows that of RFC 2518 and the PROPFIND response.
Thoughts?
Cheers,
-g
--
Greg Stein, http://www.lyra.org/