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