Reload hgrc before notify hook call ?
Yannick CHARLES
yannick.charles at gmail.com
Tue Dec 4 12:47:20 UTC 2012
Hello to everybody,
I have the following hgrc in a versionned patch queue, on a remote
server where I can push over http:
------
#
# [web] section goes here
#
[hooks]
changegroup.00updatefiles = hg update
changegroup.01autobuild_patch = bash ../patch_chgrouphook.sh Yann
# Include notify parameters
%include /var/hg/repos/test-syst/.hg/notifypatches.rc
[hooks]
# Here for testing purposes
changegroup.02upcf = hg showconfig
# Include notify hook
%include /var/hg/repos/test-syst/.hg/notifyphook.rc
------
/var/hg/repos/test-syst/.hg/notifyphook.rc normally contains the
following lines:
------
[hooks]
changegroup.03notify = python:hgext.notify.hook
------
Hook 01 rebuilds the project's output files, but also modify notify's
template. This modification is reflected by hook 02 where I see the new
template.
However, in hook 03, notify still uses the old template.
I guess this is because though hooks are run in order, hgrc is only
parsed once when I push on the repo (and parsed again to run
showconfig), so notify is passed the values present in hgrc at the
beginning of the changegroup event.
Is my interpretation correct?
My second problem is that in some cases, I wouldn't like notify to send
e-mails (e.g. the patch queue is empty). To achieve this I tried in the
same way to have the bash script called by the 01 hook to modify
notifyphook.rc into an empty file, but I have the same problem (i.e. the
file used is the previous one).
So starting from this, I have three questions:
-Is there a way to somehow reload hgrc before calling the notify hook,
or to call it with the updated parameters (if so, it could fix the 2nd
pb as well, as I would set notify.test to true)?
-Would it be possible to call the python notify hook directly from the
bash script from hook 01?
-Is it possible to run a hook only under certain conditions?
Or maybe I'm looking at the wrong direction, and it would be better to
rewrite a mail-sending procedure from scratch in the form of a bash
script for example?
Best regards,
Yannick CHARLES
More information about the Mercurial
mailing list