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

Re: Hooks and Perl on Windows

From: Toby Johnson <toby_at_etjohnson.us>
Date: 2004-11-22 20:35:04 CET

Jason Butlin wrote:

> If I run the hook batch file from the command line (with the necessary
> tweaks to get it working), when the Perl script returns the DOS
> ERRORLEVEL variable is correctly set to 1 or 0, depending upon the
> exit call of the Perl script. However, when the batch file is run from
> SVN, the errorlevel code is always 0.
>
> Anyone got any ideas as to why this is?

The problem is that even though your perl script is exiting with a
non-zero status, the batch script will always exit with a zero status
unless a problem occurs in the batch file.

A way to trick it into sending a non-zero return status is to put the
following after you call your perl script:
    if NOT %errorlevel% == 0 goto script_failed 2>nul

However, *do not define* a "script_failed" label. This will cause your
batch file to attempt to go to a non-existant level, at which point the
batch file itself will error out. The "2>nul" prevents the error message
from the missing label from going to STDERR.

You may be tempted to put "exit 1" instead of using this trick, but
don't do that: calling a batch file with "exit" in it will behave as
though you called "exit" from the command prompt, and shut down your
session! Ah, the hilarity never stops with Windows.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Mon Nov 22 20:37:40 2004

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