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

Re: http-request PUT

From: merch store <primusmanti_at_gmail.com>
Date: Fri, 25 Jul 2014 14:37:04 +0200

okay i found my mistake...
in the X-SVN-Version-Name i've put a ' ' around the revision...
because of that svn couldn't read it therefor the error...

thanks for the help

2014-07-25 10:39 GMT+02:00 merch store <primusmanti_at_gmail.com>:

> i searched for a library to do this process but i couldn't find one
> the only library which looked helpful was this one:
> https://github.com/sara-nl/js-webdav-client
> but it didn't help...
> in case you had other libraries in mind i would be grateful to know,
> because since 4 to 5 days i'm searching for solutions
>
> right...i completly forgot to explain what i want to do... sorry for that
> okay
> i'm currently working on an arch linux vm
> on this vm i installed apache with svn - nobody else has curently access
> to this server, just me
> on my desktop (not within the vm) i try to to checkout an xml file (with
> keywords filed out) and show it within a table
> this task is already finished
> so right now i want to edit this file and commit it to the svn server
> in the end i want other users to access this file and edit it too
>
> in short:
> i want to use an html website to get an xml file from svn, edit it within
> my website an commit it to the server
>
> i'm providing some pseudo code with youngestRevision = 1040, cause i think
> the original code is a bit too big
> currently i'm using jquery to achieve this
> so within the get i do an OPTIONS to get the Youngest-Revision (1040), a
> PROPFIND, REPORT (for keywords) and a GET
> right now i do a calcMD5 on the xml String for the HashBase (the MD5 is
> the same as the one i get from the svn checkout)
> then i draw the table of the persons which i defined within the xml
> with some input fields i edit the xml-String
> after that i click a submit button
> OPTIONS,
> POST: URL: /svn/testfolder/!svn/me
> contentType: application/vnd.svn-skel
> BodyData: (create-txn-with-props (svn:txn-user-agent 40
> SVN/1.8.9(i686-pc-linux-gnu) serf/1.3.4 svn:log function
> svn:txn-client-compat-version 5 1.8.9)
> PUT: URL: /svn/testfolder/!svn/txr/1040-uy/Test.xml
> contentType: text/xml
> headers X-SVN-Version-Name: 1040,
>
> X-SVN-Base-Fulltext-MD5: (HashBase)
> X-SVN-Result-Fulltext-MD5: (MD5 of the altered file)
>
> BodyData: alteredXmlString
>
> maybe this helps
> if the original source helps, here is my current source of the commit:
>
> http://stackoverflow.com/questions/24865265/how-to-do-svn-http-request-checkin-commit-within-html
> but until now nobody could really help me
>
>
> 2014-07-24 21:03 GMT+02:00 Ben Reser <ben_at_reser.org>:
>
> On 7/24/14 12:44 AM, merch store wrote:
>> > i thought the same, but i use the youngest revision i get from the
>> OPTIONS
>> > the SVN-Txn-Name which i get from the POST request and need for the PUT
>> is the
>> > same revision as the youngest revision
>> >
>> > is it possible that i need the revision in which my xml was edited the
>> last time?
>> > or that the url for POST and PUT needs the following revision of the
>> youngest
>> > revision?
>> > but if thats the case then i won't get the SVN-Txn-Name from the POST
>> request,
>> > because it returns only the Txn-Name of the youngest rev not of the
>> next rev
>>
>> I think you're confusing two different bases here.
>>
>> The transaction has a base, which happens to be included in the
>> transation name
>> (though this is an implementation detail and isn't something a client can
>> count
>> on). The base of a transaction is always the youngest revision at the
>> time the
>> transaction is created.
>>
>> However, the base of the file you're sending with PUT is not necessarily
>> the
>> same as the transaction base. Instead it should be the revision of the
>> file
>> that you modified to get the version you're about to commit (i.e. the
>> version
>> of the file that you checked out). If that happens to be the same as the
>> transaction base that's fine. But in a busy repository it's likely not
>> to be.
>>
>> You can mostly skip the out of date checks (i.e. you want to commit your
>> new
>> file regardless of what's there and possibly lose other changes people
>> have
>> made) you can do so by providing the youngest version you got from
>> OPTIONS in
>> X-SVN-Version-Name for the file, sending full text and not a delta, and
>> NOT
>> sending the X-SVN-Base-Fulltext-MD5 (since you may not even know it and
>> it's
>> not required). However, even this can fail with an out of date check if
>> someone else happens to commit a change to that file while you're
>> transmitting
>> your commit.
>>
>> It'd probably be a lot easier to help you if you explain precisely what
>> you're
>> working on. Your description of "want to do a checking from an
>> html-site" is
>> far from being specific. You mention implementing a checkout but it's not
>> clear if you have a working copy (I'm guessing not since doing that is
>> far more
>> complicated than the protocol). If you don't have a working copy then
>> you need
>> some way of storing the base information (something a working copy does
>> for
>> you) if you don't want to just overwrite whatever is in the repository.
>> This
>> however seems like an X-Y problem to me.[1]
>>
>> Unless your project absolutely can't do it I'd also strongly suggest that
>> you
>> use our library (or bindings) to do the actual communication with the
>> server.
>> We also have the svnmucc utility which is intended to support commits that
>> aren't being done out of a working copy. If nothing else it may be
>> instructive
>> to you as to how to handle this.
>>
>> [1] http://mywiki.wooledge.org/XyProblem
>>
>
>
Received on 2014-07-25 14:37:37 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.