Pre commit script exit code validation stopped working after subversion update

2014-02-11 Thread karl . mauser
Hello,

we just tried to update subversion from 1.7.10 to 1.8.5, but after the upgrade 
a non zero exit code from our pre commit script is no longer recognized.

Minimal example to recreate the error:
System: Windows 7, Subversion command line client 1.8.5
1. Create a svn repository in a folder on your filesystem
2. Create a hook script in the hook folder of the repository (called 
"pre-commit.bat"), which always gives a non zero return value:
--
@echo off
set ERRLEV=1
echo pre-commit.bat > con
echo Er: %ERRLEV% > con
pause < con > con
exit /b %ERRLEV%
--
3. Create a working copy from that repository (using the file:/// syntax)
4. Add a new file to svn and commit the changes
5. The file gets transferred to the repository, ignoring the non zero return 
value from the pre commit scipt

If you do the same thing with subversion 1.7.10 the commit is stopped and an 
error messages is displayed.

Did I miss something or is this a bug?

Regards,
Karl


Re: RE: Pre commit script exit code validation stopped working after subversion update

2014-02-12 Thread karl . mauser
>> -Original Message-
>> From: karl.mau...@gmx.de [mailto:karl.mau...@gmx.de]
>> Sent: dinsdag 11 februari 2014 14:33
>> To: users@subversion.apache.org
>> Subject: Pre commit script exit code validation stopped working after
>> subversion update
>> 
>> Hello,
>> 
>> we just tried to update subversion from 1.7.10 to 1.8.5, but after the 
>> upgrade
>> a non zero exit code from our pre commit script is no longer recognized.
>> 
>> Minimal example to recreate the error:
>> System: Windows 7, Subversion command line client 1.8.5
>> 1. Create a svn repository in a folder on your filesystem
>> 2. Create a hook script in the hook folder of the repository (called "pre-
>> commit.bat"), which always gives a non zero return value:
>> --
>> @echo off
>> set ERRLEV=1
>> echo pre-commit.bat > con
>> echo Er: %ERRLEV% > con
>> pause < con > con
>> exit /b %ERRLEV%
>> --
>> 3. Create a working copy from that repository (using the file:/// syntax)
>> 4. Add a new file to svn and commit the changes
>> 5. The file gets transferred to the repository, ignoring the non zero return
>> value from the pre commit scipt
>> 
>> If you do the same thing with subversion 1.7.10 the commit is stopped and an
>> error messages is displayed.
>> 
>> Did I miss something or is this a bug?
>
>Does the result change if you don't use '/b' for your exit, as you *do* want 
>to exit cmd.exe (which executes your .bat file) here.
>
>[[
>G:\>svn --version
>svn, version 1.8.5-SlikSvn-1.8.5-X64 (SlikSvn/1.8.5) X64
>   compiled Nov 30 2013, 17:17:43 on x86_64-microsoft-windows6.2.9200
>
>Copyright (C) 2013 The Apache Software Foundation.
>This software consists of contributions made by many people;
>see the NOTICE file for more information.
>Subversion is open source software, see http://subversion.apache.org/
>
>The following repository access (RA) modules are available:
>
>* ra_svn : Module for accessing a repository using the svn network protocol.
>  - with Cyrus SASL authentication
>  - handles 'svn' scheme
>* ra_local : Module for accessing a repository on local disk.
>  - handles 'file' scheme
>* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
>  - using serf 1.3.2
>  - handles 'http' scheme
>  - handles 'https' scheme
>
>G:\>svnadmin create REPO
>
>G:\>echo @exit 1 > REPO\hooks\pre-commit.bat
>
>G:\>svn mkdir file:///%CD%/REPO/q -m "QQ"
>svn: E165001: Commit blocked by pre-commit hook (exit code 1) with no output.
>
>G:\>echo @exit 111 > REPO\hooks\pre-commit.bat
>
>G:\>svn mkdir file:///%CD%/REPO/q -m "QQ"
>svn: E165001: Commit blocked by pre-commit hook (exit code 111) with no output.
>]]
>
>   Bert

Not using the "/b" switch really changes the behaviour and the script works 
with subversion 1.8.5 as well as with 1.7.10.
What I don't get is why did it work with subversion 1.7.10 when using the "/b" 
switch, that should be independent from the subversion version.

But for now I changed my script and won't investigate it any further.

Thanks for your help Bert!

Karl