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

Reply via email to