C. Michael Pilato wrote:
> Greg Stein wrote:
>> More XML crap? Yuck, ugh, and bleagh.
>>
>> On Mon, May 17, 2010 at 14:09, <cmpilato_at_apache.org> wrote:
>>> ...
>>> +++ subversion/trunk/subversion/mod_dav_svn/posts/create-transaction.c Mon May 17 18:09:28 2010
>>> ...
>>> +/* Respond to a S:dated-rev-report request. */
>>> +int
>>> +dav_svn__create_transaction_post(const dav_resource *resource,
>>> + const apr_xml_doc *doc,
>>> + ap_filter_t *output)
>>> +{
>>> + request_rec *r = resource->info->r;
>>> + apr_bucket_brigade *bb;
>>> + apr_status_t apr_err;
>>> + dav_error *derr = NULL;
>>> + const char *txn_name;
>>> +
>>> + /* Create a Subversion repository transaction based on HEAD, and
>>> + return the new transaction's name in a custom "201 Created"
>>> + response header. */
>>> + derr = dav_svn__create_txn(resource->info->repos, &txn_name, resource->pool);
>>> + if (derr)
>>> + return dav_svn__error_response_tag(r, derr);
>> This doesn't match the "int" return type you've defined, and it
>> results in build errors (see the buildbots).
>
> Hrm. This from util.c:
>
> int
> dav_svn__error_response_tag(request_rec *r,
> dav_error *err)
> {
> ...
>
> I'll look into this (and the other similarly unexplainable) return mismatch
> you mentioned.
>
>> Can I say again that I hate XML, and am very much -0.5 on using it in
>> our protocol like this? These bodies have nothing to conform to, so
>> there is no reason to use XML. If you're doing it for *expedience*
>> rather than *propriety*, then I'd suggest taking short cuts now could
>> hurt us in the long term. XML means we need to deal with escaping as
>> we move forward. It is overly wordy. Hard to write parsing code. etc
>> etc.
>
> I have a local patch here that adds a mod_dav_svn utility function for
> stringbuf'ing a request into a giant block of memory and parsing into a
> skel. I can certainly switch to that approach if you feel that strongly
> about it. Would you be okay with a documented requirement that these new
> POSTs use "text/plain", skel input, where the first atom of the skel is the
> POST operation verb ("create-transaction", "lock-paths", etc.)?
Actually, scratch the "text/plain" bit. We send non-human-readable stuff
across the wire, too. (Perhaps use a custom MIME type to indicate skelful
content?)
--
C. Michael Pilato <cmpilato_at_collab.net>
CollabNet <> www.collab.net <> Distributed Development On Demand
Received on 2010-05-17 21:12:07 CEST