You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Jacky <wy...@gmail.com> on 2008/07/16 00:15:34 UTC

svn 1.5.0 mod_dav_svn start-commit check mergeinfo capability problem

Hi,

I am using subversion-1.5.0.

I have a start-commit script to prevent client without mergeinfo to 
commit to the repository. It works when I use svnserver (use svn://... 
as URL) as the backend. However it failed when I use mod_dav_svn(use 
http://... as URL).

My start-commit script is

#!/bin/sh
echo "this is the start-commit script's argument: \$1='$1' \$2='$2' 
\$3='$3'" > /dev/stderr
exit 1

when I use svnserver to commit, I got this response:
Transmitting file data .svn: Commit failed (details follow):
svn: Commit blocked by start-commit hook (exit code 1) with output:
this is the start-commit script's argument: 
$1='/work/subversion/test-repos' $2='' $3='mergeinfo'

However when I use mod_dav_svn to commit, I got this response:
Transmitting file data .svn: Commit failed (details follow):
svn: Commit blocked by start-commit hook (exit code 1) with output:
this is the start-commit script's argument: 
$1='/work/subversion/test-repos' $2='' $3=''

Notice the difference of $3 between the two cases.

I notice the commit action in mod_dav_svn involves a few steps. The 
first step uses OPTIONS which includes DAV: .../mergeinfo in the http 
header. But the following steps (PROPFIND, MKACTIVITY) don't include 
this header which seems to make svn server calling start-commit script 
without mergeinfo capability.

Attached is the wireshark's http log.

Is this a bug?
What effect will this have on merge tracking?
Will this fool the server that the client can not handle mergeinfo and 
not sending the merge info to the client thus broke the merge tracking?

Your help is appreciated.

Cheers,

Jacky