>> -----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