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

Re: Error on Post Commit Hook.BAT

From: David Chapman <dcchapman_at_acm.org>
Date: Tue, 01 Feb 2011 23:31:27 -0800

On 2/1/2011 10:54 PM, Waseem Bokhari wrote:
>
> <http://www.netsoltech.com/>//
>
> *From:*David Chapman [mailto:dcchapman_at_acm.org]
> *Sent:* Wednesday, February 02, 2011 11:48 AM
> *To:* Waseem Bokhari
> *Cc:* users_at_subversion.apache.org
> *Subject:* Re: Error on Post Commit Hook.BAT
>
> On 2/1/2011 10:16 PM, Waseem Bokhari wrote:
>
> _Here is a Post-Commit.bat for generating email on every-commit._
>
> *@echo off*
>
> **
>
> *:::::::::::::::::::::::::::::::::::::::::::::::::::::*
>
> *::: ARGUMENTS :::::::::::::::::::::::::::::::::::::::*
>
> **
>
> *SET REPOS=%1*
>
> *SET REV=%2*
>
> **
>
> *:::::::::::::::::::::::::::::::::::::::::::::::::::::*
>
> *::: GENERAL INFO ::::::::::::::::::::::::::::::::::::*
>
> *SET DIR=E:\Repositories\WSBokhari\hooks*
>
> *SET MESSAGE_FILE=%DIR%/message.txt*
>
> **
>
> *:::::::::::::::::::::::::::::::::::::::::::::::::::::*
>
> *::: SVN INFO ::::::::::::::::::::::::::::::::::::::::*
>
> *SET DIR=E:\Repositories\WSBokhari\hooks*
>
> *SET REPO_PATH=file:///E:/Repositories/WSBokhari
> <file:///E:%5CRepositories%5CWSBokhari>*
>
> **
>
> *::: Get the author ::::::::::::::::::::::::::::::::::*
>
> *For /F "Tokens=*" %%I in ('svnlook author %REPOS% -r %REV%') Do Set
> author=%%I*
>
> **
>
> *::: Get the log messsage ::::::::::::::::::::::::::::::::::*
>
> *For /F "Tokens=*" %%I in ('svnlook log %REPOS% -r %REV%') Do Set log=%%I*
>
> **
>
> *::: Set the message body ::::::::::::::::::::::::::::::::::*
>
> *ECHO Commit - rev %REV% (#%author%): '%log%' - %REPOS% > %MESSAGE_FILE%*
>
> **
>
> *:::::::::::::::::::::::::::::::::::::::::::::::::::::*
>
> *::: EMAIL INFO ::::::::::::::::::::::::::::::::::::::*
>
> **
>
> *set to=-to ntpk.scm_at_netsolpk.com <mailto:ntpk.scm_at_netsolpk.com>*
>
> **
>
> *set subj=-s "SVN Commit (Revision %REV%)"*
>
> **
>
> *set server=-server mail.netsolpk.com*
>
> **
>
> *set auth=-u waseem.bokhari_at_netsolpk.com
> <mailto:waseem.bokhari_at_netsolpk.com> --pw 123 *
>
> **
>
> *set from=-f waseem.bokhari_at_netsolpk.com
> <mailto:waseem.bokhari_at_netsolpk.com>*
>
> **
>
> *:::::::::::::::::::::::::::::::::::::::::::::::::::::*
>
> *::: SEND THE EMAIL ::::::::::::::::::::::::::::::::::*
>
> **
>
> *E:/Repositories/WSBokhari/%MESSAGE_FILE% %server% %to% %from% %subj%
> %auth%*
>
> **
>
> **
>
> *_Error Message:_*
>
> **
>
> *post-commit hook failed (exit code 1) with output:*
>
> *The filename, directory name, or volume label syntax is incorrect.*
>
> **
>
> **
>
> *_PS:_*
>
> Even file *message.txt***is being creating in my Hooks Folder
> according to this::
>
> **
>
> *SET MESSAGE_FILE=%DIR%/message.txt*
>
>
>
> //
>
>
> This line looks wrong. Try using a backslash ('\') instead of a
> forward slash ('/'). Although many Windows programs tolerate forward
> slashes in file names, the Windows batch processor is not one of
> them. It uses forward slashes to mark parameters (as is shown in the
> "For /F" lines) so it is trying to interpret "/message.txt" as a
> parameter, not part of your message file name.
>
> If you're going to be creating or editing Windows batch files, I
> strongly encourage you to buy a book on how to create them. It's been
> so long that I can't recommend one to you, unfortunately.
>
> --
> David Chapman dcchapman_at_acm.org <mailto:dcchapman_at_acm.org>
> Chapman Consulting -- San Jose, CA
>
>

>Even I have changed the slashed but the message was same.

>

>Please advice.

Did you change both lines? I also see forward slashes in the line which
is described as "SEND THE EMAIL" at the very end.

For that matter, this line looks wrong too. Earlier, you set the
variable DIR to "E:\Repositories\WSBokhari\hooks". The value of this
variable will be substituted whenever "%DIR%" appears. Thus if you have
"SET MESSAGE_FILE=%DIR%\message.txt" this is the same as "SET
MESSAGE_FILE=E:\Repositories\WSBokhari\hooks\message.txt" and the value
of this variable will be substituted whenever "%MESSAGE_FILE%" appears,
as it does on the last line.

If you replace the forward slashes in the last line with backslashes and
perform the substitution of "%MESSAGE_FILE%", the first word of the line
will become
"E:\Repositories\WSBokhari\E:\Repositories\WSBokhari\hooks\message.txt",
which is obviously an invalid Windows path name.

The message file is clearly not intended to include the name of the mail
program, so you need to supply the name of the E-mail program. I don't
know what that would be. Nor do I know the command-line parameters for
the E-mail program, so I cannot tell you whether the syntax of this line
is correct. But if your E-mail send program is
"E:\Repositories\WSBokhari\hooks\send_message.exe" and it accepted the
parameters you have listed, the last line of the batch program would be:

E:\Repositories\WSBokhari\hooks\send_message.exe %MESSAGE_FILE% %server%
%to% %from% %subj% %auth%

You really need a book on Windows batch file processing.
//

-- 
     David Chapman         dcchapman_at_acm.org
     Chapman Consulting -- San Jose, CA
Received on 2011-02-02 08:32:12 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.