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

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

From: Bert Huijben <bert_at_qqmail.nl>
Date: Tue, 11 Feb 2014 19:07:34 +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
Received on 2014-02-11 19:08:23 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.