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

RE: commit-email.pl errors on Win2000 (was RE: Are there anyone running Subversion server on Window NT?)

From: Jeff Cave <jeff.cave_at_sunergon.com>
Date: 2003-05-07 18:35:24 CEST

I now have a copy of the scripts that works with Win2000. I hope that someone else out there finds them useful. I tried to keep the number of alterations from the original to a minimum.

post-commit.bat is the same as the post-commit.tmpl except it uses batch file syntax instead of bash syntax. commit-email.pl has a couple of small changes to the safe_read method that allow it to work under windows as well as a change to the way it sends mail (the script itself is the client).

Unfortunately, this does not solve Chien-Lung Wu's original problem. We have sent a couple of emails back and forth and the problem there was not in the commit-email.pl but in the hook itself.

Chien-Lung Wu tried this batch file

   rename e:\svn\repos\L3\hooks\y.txt e:\svn\repos\L3\hooks\x.txt

and it failed. I have tried the same batch file, and it worked. This is not a problem with the hook scripts, but with the calling of the hook scripts.

This is where I notice that I have no idea what I'm talking about and run back to my corner to hide in, hoping that someone else will have something to add...

-Jeff-

/*** post-commit.bat **************************************/
set REPOS=%1
set REV=%2
perl c:\svn\hooks\commit-email.pl %REPOS% %REV% k@vius.ca -h myserver.com
/*** post-commit.bat **************************************/

/*** diff commit-email.pl commit-email.orig ***************/
31d30
< use Net::SMTP; ###Suggestion by Jeff Cave
37c36
< my $sendmail = "c:\\Perl\\bin\\perl.exe";

---
> my $sendmail = "/usr/sbin/sendmail";
40,46c39
< my $svnlook = "c:\\program files\\subversion\\svnlook.exe";
<
< # Mail Server
< my $mailserver = "smtp.sunergon.com";  ### Suggestion by Jeff Cave
<
< #Temporary Directory
< my $tmp_dir = 'c:\\temp\\svnlook';
---
> my $svnlook = "@SVN_BINDIR@/svnlook";
212a206
> my $tmp_dir = '/tmp';
216,217d209
< #modify svnlook path to account for spaces in path name
< $svnlook = "\"" . $svnlook . "\"";
226,227c218,219
< #c:\program files\subversion\svnlook.exe dirs-changed c:\db\svn\swarm -r 2
< my @dirschanged = &read_from_process($svnlook, 'dirs-changed', $repos, '-r', $
rev);
---
> my @dirschanged = &read_from_process($svnlook, 'dirs-changed', $repos,
>                                      '-r', $rev);
449,483c441,455
<     ### Suggestion by Jeff Cave###
<     #
<     my $mailer = Net::SMTP->new($mailserver, Timeout => 60) or (print "$0: cannot open '$mailserver' for writing: $!\n");
<
<     $mailer->mail($mail_from);
<     $mailer->to($userlist);
<     $mailer->data();
<
<     $mailer->datasend(@head);
<     $mailer->datasend(@body);
<     $mailer->dataend();
<     $mailer->quit;
<     #
<     ### Sugestion by Jeff Cave###
<
---
>     if ($sendmail =~ /\w/ and @email_addresses)
>       {
>         # Open a pipe to sendmail.
>         my $command = "$sendmail $userlist";
>         if (open(SENDMAIL, "| $command"))
>           {
>             print SENDMAIL @head, @body;
>             close SENDMAIL
>               or warn "$0: error in closing `$command' for writing: $!\n";
>           }
>         else
>           {
>             warn "$0: cannot open `| $command' for writing: $!\n";
>           }
>       }
556c528,539
<   my $pid = open(SAFE_READ, "@_ |") || die "$0: cannot exec `@_': $!\n";
---
>   my $pid = open(SAFE_READ, '-|');
>   unless (defined $pid)
>     {
>       die "$0: cannot fork: $!\n";
>     }
>   unless ($pid)
>     {
>       open(STDERR, ">&STDOUT")
>         or die "$0: cannot dup STDOUT: $!\n";
>       exec(@_)
>         or die "$0: cannot exec `@_': $!\n";
>     }
600a584
>
/*** diff commit-email.pl commit-email.orig ***************/



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Received on Wed May 7 20:02:25 2003

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.