can't figure out why in-process hook in repo's hgrc doesn't fire when I push via hgweb.cgi

Alex Mikhail alexm at ziiva.com
Thu Mar 31 22:07:50 UTC 2016


To all,

 

I'm running Hg version 3.4.2 and it is running on Windows Server 2008 R2.

 

I've recently started using Mercurial and started checking in my current
projects against it.  (I set it up some time ago.)  Now I'm trying to get
the integration between Hg and our ticket system (FogBugz) working.  Fog
Creek provides a python script that picks up any commits whose messages have
the word FogBugz in them and adds those files from the commit to the
check-ins of the ticket.  (Actually, you add the following to the commit
message -- FogBugz:12345. This adds the commits' files to the ticket 12345.)

 

Their instructions say to add the script to the changegroup hook of the
'central' repo.  

I added it as follows:

 

[hooks]

changegroup = 

changegroup.fogbugz = python:C:\hgfiles\fogbugz.py:hook

 

This way it can pick up any files pushed to the 'central' repo.

 

I am using hgweb.cgi with IIS 7.5.  If I add script to the hook in
hgweb.config, the checkins are added but the links are incorrect.  This is
because the links are different for each repo.  (There's a config parameter
specifically for the links in the hg config file.)  Ideally, the
configuration for the hook would reside in each repo's .hg/hgrc file.  

 

These are the lines added for the links.  It would be different for each
repo.

[web]

baseurl=http://hgweb/hgweb.cgi/hgnotes/

 

When I add the script to the changegroup hook on in the repo's hgrc file,
the hook doesn't run.

 

Interestingly enough, when I add the following hook to the repo's hgrc file:

changegroup.test = C:\hgfiles\datetime.bat 1>> C:\hgfiles\out.txt 2>>&1 

 

It will run.

 

I've looked at the IIS logs that execute the mercurial script and all I get
is details about the HTTP request.  I was hoping the CGI script might return
an error, but no errors are listed there.

 

I've also added a trust relationship for my windows user.  I placed that
directive in hgweb.config so hgweb.cgi uses it when it processes a push from
a remote server.  I made sure fogbugz.py and fogbugz.pyc are both owned by
ZIIVA\amikhail.

 

Does anyone have any suggestions on what I can do to troubleshoot the issue?
What can I do to get some sort of output/error message from the in-process
hook?

 

(On a related note, I did put a ticket in to Fog Creek support a while ago,
but they where stuck at the same place I was.  Neither of us know how to get
any sort of error message or further output from the in-process hook.)

 

Here are the config files in question:

 

The .hg/hgrc file for the repo:

-------------------------------

[web]

push_ssl=No

allow_push=amikhail

baseurl=http://hgweb/hgweb.cgi/hgnotes/

 

[hooks]

changegroup = 

changegroup.fogbugz = python:C:\hgfiles\fogbugz.py:hook

changegroup.test = C:\hgfiles\datetime.bat 1>> C:\hgfiles\out.txt 2>>&1

 

[fogbugz]

host=http://fogbugz

 

The hgweb.config file:

----------------------

#https://www.mercurial-scm.org/wiki/Trust

[trusted]

users = amikhail

 

[paths]

Test1 = C:\hgrepos\test1

Test2 = C:\hgrepos\test2

hgnotes = C:\hgrepos\hgnotes

sfqt = C:\hgrepos\sfqt

ZiivaAdmin2 = C:\hgrepos\ZiivaAdmin2

LongTest = C:\hgrepos\LongTest

WindowsService2 = C:\hgrepos\WindowsService2

Diagrams = C:\hgrepos\Diagrams

ProjectNotes = C:\hgrepos\ProjectNotes

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial/attachments/20160331/51637cc1/attachment.html>


More information about the Mercurial mailing list