subversion-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject svn commit: r1670528 - /subversion/site/publish/faq.html
Date Wed, 01 Apr 2015 00:38:14 GMT
Author: jcorvel
Date: Wed Apr  1 00:38:14 2015
New Revision: 1670528

* publish/faq.html: Add question (and answer) "Why does a http(s) URL-to-URL
   copy or branch / tag operation take a long time?", related to issue 4531.


Modified: subversion/site/publish/faq.html
--- subversion/site/publish/faq.html (original)
+++ subversion/site/publish/faq.html Wed Apr  1 00:38:14 2015
@@ -273,6 +273,8 @@ validating server certificate</tt> error
 <li><a href="#copy-mergeinfo">When does <tt>svn copy</tt> create
<tt>svn:mergeinfo</tt> properties?</a></li>
 <li><a href="#password-encodings">Passwords which contain some special
     characters do not seem to be working?</a></li>
+<li><a href="#dav-slow-copy">Why does a http(s) URL-to-URL copy or
+    branch / tag operation take a long time?</a></li>
 <h4>Developer questions:</h4>
@@ -4359,6 +4361,42 @@ work around this limitation of passwords
+<div class="h3" id="dav-slow-copy">
+<h3>Why does a http(s) URL-to-URL copy or branch / tag operation
+take a long time?
+  <a class="sectionlink" href="#dav-slow-copy"
+    title="Link to this section">&para;</a>
+<p>If you are seeing slow server-side copying (aka branching or tagging)
+with a Subversion repository served over http(s), you might be running into
+<a href=""
+>issue 4531</a>. This problem is caused by a crawl of the "tree-to-copy" by
+httpd's mod_dav module on the server (giving the copy a performance cost of
+O(sizeof(tree)) instead of SVN's usual O(1) for branching/tagging).
+This behaviour is present in <b>Apache httpd version 2.2.25 (or higher)</b>
+and <b>2.4.6 (or higher)</b> -- older httpd versions are not affected.
+Branching / tagging a large tree may take several minutes because of this.</p>
+<p>Until a fix is available, you can use the following workaround, to let
+mod_dav skip the unnecessary work: add these directives to the Apache
+configuration on the server, preferably only inside the Location blocks
+configured for SVN:</p>
+SetEnvIf Request_Method COPY method_is_copy
+RequestHeader set Depth 0 env=method_is_copy
+<p>This adds a request header "Depth" with value 0 to each COPY request. This
+makes mod_dav avoid the crawl of the tree being copied (yet still lets
+Subversion perform a normal recursive copy).</p>
+<p>See <a href=""
+>this mailing list thread</a> for more details.</p>

View raw message