[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 10:39:29 +0200

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 10:40:01 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.