Author: julianfoad Revision: 916286 Modified property: svn:log Modified: svn:log at Thu Nov 18 12:23:03 2010 ------------------------------------------------------------------------------ --- svn:log (original) +++ svn:log Thu Nov 18 12:23:03 2010 @@ -1,38 +1,43 @@ -With the below apache configuration(See the trailing slash at the end of '/svn/'). +With the below apache configuration (see the trailing slash at the end of +'/svn/'): -<Location /svn/> - DAV svn - SVNParentPath /repositories -#See the trailing slash on the master URI also can cause the confusion. - SVNMasterURI http://master/svn/ - SVNAdvertiseV2Protocol Off -</Location> + <Location /svn/> + DAV svn + SVNParentPath /repositories + #See the trailing slash on the master URI also can cause the confusion. + SVNMasterURI http://master/svn/ + SVNAdvertiseV2Protocol Off + </Location> + +we get the following error on the client side: + + svn: Commit failed (details follow): + svn: MKACTIVITY of '/svn/demujin/!svn/act/4b6d547c-018d-4e02-9d3f-2b283076cc06': + Could not read status line: connection was closed by server (http://localhost) - -We get the following error on the client side. - -svn: Commit failed (details follow): -svn: MKACTIVITY of '/svn/demujin/!svn/act/4b6d547c-018d-4e02-9d3f-2b283076cc06': Could not read status line: connection was closed by server (http://localhost) - - -On the server(proxy) it is an assertion error on the following code block from subversion/mod_dav_svn/mirror.c:proxy_request_fixup +On the server (proxy) it is an assertion error on the following code block from +subversion/mod_dav_svn/mirror.c:proxy_request_fixup(): assert((uri_segment[0] == '\0') - || (uri_segment[0] == '/')); + || (uri_segment[0] == '/')); -For the above configuration we get the uri_segment with the value 'reponame/some/path/inside/the/repo'. +For the above configuration we get the uri_segment with the value +'reponame/some/path/inside/the/repo'. + +We fix this by canonicalizing the 'root_dir' (the one in Location) and +'uri.path' (path portion of Master URI). -We fix this by canonicalizing the 'root_dir'(The one in Location) and -'uri.path'(Path portion of Master URI). * subversion/mod_dav_svn/dav_svn.h -(dav_svn__get_root_dir): Document that root_dir is in canonicalized form. + (dav_svn__get_root_dir): Document that root_dir is in canonicalized form. + * subversion/mod_dav_svn/mod_dav_svn.c -(create_dir_config): Canonicalize the root_dir. + (create_dir_config): Canonicalize the root_dir. + * subversion/mod_dav_svn/mirror.c -(dav_svn__location_in_filter, dav_svn__location_body_filter): -As root_dir is in canonical form canonicalize the uri.path too to avoid -spurious errors. -(dav_svn__location_header_filter): As root_dir is canonical we need to - explicitly introduce the path seperator. + (dav_svn__location_in_filter, dav_svn__location_body_filter): + As root_dir is in canonical form canonicalize the uri.path too to avoid + spurious errors. + (dav_svn__location_header_filter): As root_dir is canonical we need to + explicitly introduce the path seperator. Suggested by: julianfoad
