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

dav COPY method

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2001-10-10 22:59:40 CEST

So gstein, in libsvn_ra_dav/commit.c, I see that commit_add_file() has
comments about someday using the dav COPY method if it were ever to
receive 'copyfrom' args someday.

Well, that day is upon us. I'm mere steps away from implementing 'svn
cp' and 'svn mv' on the client side and over ra_local; I just need to
understand how COPY should work over the network. Can you elaborate?

Let me first state how 'svn cp' (and 'svn mv') will work in the

   % svn cp foo bar

      1. does a system copy of foo to bar

      2. schedules bar for (A)ddition

      3. copies foo's properties and timestamps (unchanged) to bar

      4. copies foo's pristine file over to bar

      5. stores 'copyfrom' args in bar's entry

   % svn commit bar

      1. client calls editor->add_file(copyfrom_args)

          The editor then calls svn_fs_copy(copyfrom_args), which
          creates a new node-rev-id. This node-rev-id is unrelated to
          foo's node-rev-id, but contains copy history info in its
          skel. The new node-rev-id also starts life full of text and

      2. client looks for local text or prop mods, by examining
          pristine file/props. If it finds any, it sends textdeltas
          as usual.

So, as I understand it, mod_dav should already be aware of the COPY
method. It probably needs to pass this request off to mod_dav_svn,
which can then call svn_fs_copy(). Am I on the right track?


To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:44 2006

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

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