Necesito un gancho simple para mercurial que comprueba el comentario de compromiso utilizando el patrón. Aquí está mi gancho:¿Cómo se muestra la salida del gancho en la ventana de registro de Tortoise Hg?
#!/usr/bin/env python
#
# save as .hg/check_whitespace.py and make executable
import re
def check_comment(comment):
#
print 'Checking comment...'
pattern = '^((Issue \d+:)|(No Issue:)).+'
if re.match(pattern, comment, flags=re.IGNORECASE):
return 1
else:
print >> sys.stderr, 'Comment does not match pattern. You must start it with "Issue 12323:" or "No Issue:"'
return 0
if __name__ == '__main__':
import os, sys
comment=os.popen('hg tip --template "{desc}"').read()
if not check_comment(comment):
sys.exit(1)
sys.exit(0)
Funciona. Incluso muestra el mensaje de error 'Comment does not match pattern. You must start it with "Issue 12323:" or "No Issue:"'
cuando confirmo desde la consola. Pero cuando intento comprometerme desde Tortoise Hg Workbench, solo se muestra el mensaje del sistema: abort: pretxncommit.check_comment hook exited with status 1
.
Necesito informar al usuario de lo que está mal. ¿Hay alguna manera de forzar a Tortoise Hg a mostrar la salida del anzuelo?
Solo supongo, pero ¿ha intentado escribir en sys.out en lugar de sys.err? – bbaja42
Sí. No ayudó. –