[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

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

From: <karl.mauser_at_gmx.de>
Date: Wed, 12 Feb 2014 14:00:49 +0100

>> -----Original Message-----
>> From: karl.mauser_at_gmx.de [mailto:karl.mauser_at_gmx.de]
>> Sent: dinsdag 11 februari 2014 14:33
>> To: users_at_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
Received on 2014-02-12 14:01:29 CET

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.