svnsync broken, workaround available (was Re: svn commit: r213379 - head/sys/dev/usb/controller)

Eugene M. Kim 20080111.freebsd.org at ab.ote.we.lv
Wed Oct 13 00:07:11 UTC 2010


 This commit (r213379) has a couple of stray/toxic directory
properties, with an equal sign ("=") in their name, e.g.
"svn:keywords=FreeBSD=%H" whose value is "xhci.c" :-p.  Running
svnsync to mirror this revision to a remote repository over DAV (http:
or https:) will result in "400 Bad Request".  Unaffected are non-DAV
schemes, e.g. svn:, svn+ssh:.

Symptom: svnsync fails with the following error message: "svnsync:
Server sent unexpected return value (400 Bad Request) in response to
PROPPATCH request"

Cause (for the curious): svnsync tries to copy the toxic properties by
creating a PROPPATCH request with ill-formed XML elements, e.g.
"<S:keywords=FreeBSD=%H>xhci.c</S:keywords=FreeBSD=%H>".  Apache
mod_dav catches this and rejects the request.

Workaround: Remove svn:sync-currently-copying revprop at revision 0 in
the destination (mirror) repository, then run "svnsync sync" manually
once, accessing the destination repository via svnserve (svn: or
svn+ssh:) instead of the usual DAV scheme.  Once svnsync successfully
replicates the problematic revision, the DAV scheme can be used again.

As for how those names have passed the first line of check (in
libsvn_client), I have no idea...  I wonder, however, if it is
possible to perform a repo surgery to remove these properties.

Regards,
Eugene


More information about the svn-src-all mailing list