comparison es/hook.tex @ 573:9438521abfc4

finished the "bundled hooks" sections
author Javier Rojas <jerojasro@devnull.li>
date Wed, 31 Dec 2008 10:18:25 -0500
parents 7df73b3bc2eb
children 22184eb4c965
comparison
equal deleted inserted replaced
568:339720510480 573:9438521abfc4
604 sentido sólo si se tiene un servidor adecuadamente asegurado que 604 sentido sólo si se tiene un servidor adecuadamente asegurado que
605 autentique a los usuarios remotos, y si usted desea segurarse de que 605 autentique a los usuarios remotos, y si usted desea segurarse de que
606 sólo se le permita a ciertos usuarios empujar cambios a dicho 606 sólo se le permita a ciertos usuarios empujar cambios a dicho
607 servidor. 607 servidor.
608 608
609 \subsubsection{Configurar el gancho \hook{acl}} 609 \subsubsection{Configuración del gancho \hook{acl}}
610 610
611 Para administrar los conjuntos de cambios entrantes, se debe usar el 611 Para administrar los conjuntos de cambios entrantes, se debe usar el
612 gancho \hgext{acl} como un gancho de tipo \hook{pretxnchangegroup}. 612 gancho \hgext{acl} como un gancho de tipo \hook{pretxnchangegroup}.
613 Esto le permite ver qué ficheros son modificados por cada conjunto de 613 Esto le permite ver qué ficheros son modificados por cada conjunto de
614 %TODO rollback => "deshacer el efecto" 614 %TODO rollback => "deshacer el efecto"
891 Los problemas más comunes que aparecen en la configuración del gancho 891 Los problemas más comunes que aparecen en la configuración del gancho
892 \hgext{bugzilla} suelen estar relacionados con la ejecución del guión 892 \hgext{bugzilla} suelen estar relacionados con la ejecución del guión
893 de Bugzilla \filename{processmail} y la asociación de nombres de 893 de Bugzilla \filename{processmail} y la asociación de nombres de
894 consignadores a nombres de usuario. 894 consignadores a nombres de usuario.
895 895
896 Recuerde que en la sección~\ref{sec:hook:bugzilla:config} arriba que 896 Recuerde que en la sección~\ref{sec:hook:bugzilla:config} arriba el
897 el usuario que ejecuta el proceso Mercurial en el servidor es también 897 usuario que ejecuta el proceso Mercurial en el servidor es también
898 that runs the Mercurial process on the server is also the one that 898 el usuario que ejecutará el guión \filename{processmail}. El guión
899 will run the \filename{processmail} script. The 899 \filename{processmail} algunas veces hace que Bugzilla escriba en
900 \filename{processmail} script sometimes causes Bugzilla to write to 900 ficheros en su directorio de configuración, y los ficheros de
901 files in its configuration directory, and Bugzilla's configuration 901 configuración de Bugzilla usualmente son propiedad del usuario bajo el
902 files are usually owned by the user that your web server runs under. 902 cual se ejecuta el servidor web.
903 903
904 You can cause \filename{processmail} to be run with the suitable 904 Usted puede hacer que \filename{processmail} sea ejecutado con la
905 user's identity using the \command{sudo} command. Here is an example 905 identidad del usuario adecuado usando el comando \command{sudo}. A
906 entry for a \filename{sudoers} file. 906 continuación se presenta una entrada de ejemplo para un fichero
907 \filename{sudoers}.
907 \begin{codesample2} 908 \begin{codesample2}
908 hg_user = (httpd_user) NOPASSWD: /var/www/html/bugzilla/processmail-wrapper %s 909 hg_user = (httpd_user) NOPASSWD: /var/www/html/bugzilla/processmail-wrapper %s
909 \end{codesample2} 910 \end{codesample2}
910 This allows the \texttt{hg\_user} user to run a 911 Esto permite que el usuario \texttt{hg\_user} ejecute el programa
911 \filename{processmail-wrapper} program under the identity of 912 \filename{processmail-wrapper} con la identidad del usuario
912 \texttt{httpd\_user}. 913 \texttt{httpd\_user}.
913 914
914 This indirection through a wrapper script is necessary, because 915 Esta indirección a través de un guión envoltorio es necesaria, porque
915 \filename{processmail} expects to be run with its current directory 916 \filename{processmail} espera que al ser ejecutado su directorio
916 set to wherever you installed Bugzilla; you can't specify that kind of 917 actual sea aquel en el cual se instaló Bugzilla; usted no puede
917 constraint in a \filename{sudoers} file. The contents of the wrapper 918 especificar ese tipo de condición en un fichero \filename{sudoers}.
918 script are simple: 919 Los contenidos del giuón envoltorio son simples:
919 \begin{codesample2} 920 \begin{codesample2}
920 #!/bin/sh 921 #!/bin/sh
921 cd `dirname $0` && ./processmail "$1" nobody@example.com 922 cd `dirname $0` && ./processmail "$1" nobody@example.com
922 \end{codesample2} 923 \end{codesample2}
923 It doesn't seem to matter what email address you pass to 924 No parece importar qué dirección de correo se le pase a
924 \filename{processmail}. 925 \filename{processmail}.
925 926
926 If your \rcsection{usermap} is not set up correctly, users will see an 927 Si su \rcsection{usermap} no es configurada correctamente, los
927 error message from the \hgext{bugzilla} hook when they push changes 928 usuarios verán un mensaje de error del gancho \hgext{bugzilla} cuando
928 to the server. The error message will look like this: 929 empujen cambios al servidor. El mensaje de error se verá así:
929 \begin{codesample2} 930 \begin{codesample2}
930 cannot find bugzilla user id for john.q.public@example.com 931 cannot find bugzilla user id for john.q.public@example.com
931 \end{codesample2} 932 \end{codesample2}
932 What this means is that the committer's address, 933 Lo que esto quiere decir es que la dirección del consignador,
933 \texttt{john.q.public@example.com}, is not a valid Bugzilla user name, 934 \texttt{john.q.public@example.com}, no es un nombre de usuario
934 nor does it have an entry in your \rcsection{usermap} that maps it to 935 Bugzilla válido, ni tiene una entrada en su \rcsection{usermap} que lo
935 a valid Bugzilla user name. 936 asocie con un nombre de usuario válido Bugzilla.
936 937
937 \subsection{\hgext{notify}---send email notifications} 938 \subsection{\hgext{notify}---enviar notificaciones de correo
938 939 electrónico}
939 Although Mercurial's built-in web server provides RSS feeds of changes 940
940 in every repository, many people prefer to receive change 941 %TODO feeds => notificaciones: lo más fácil es mirar en wikipedia
941 notifications via email. The \hgext{notify} hook lets you send out 942 Aunque el servidor web embebido de Mercurial provee notificaciones de
942 notifications to a set of email addresses whenever changesets arrive 943 cambios en cada repositorio, muchas personas prefieren recibir las
943 that those subscribers are interested in. 944 notificaciones de cambios vía correo electrónico. El gancho
944 945 \hgext{notify}\footnote{Notificación.} le permite a usted enviar
945 As with the \hgext{bugzilla} hook, the \hgext{notify} hook is 946 notificaciones a un conjunto de direcciones de correo cuando lleguen
946 template-driven, so you can customise the contents of the notification 947 conjuntos de cambios en los que los subscriptores estén interesados.
947 messages that it sends. 948
948 949 De la misma forma que con el gancho \hgext{bugzilla}, el gancho
949 By default, the \hgext{notify} hook includes a diff of every changeset 950 \hgext{notify} está orientado a plantillas, así que usted puede
950 that it sends out; you can limit the size of the diff, or turn this 951 personalizar los contenidos del mensaje de notificación que se envía.
951 feature off entirely. It is useful for letting subscribers review 952
952 changes immediately, rather than clicking to follow a URL. 953 Por defecto, el gancho \hgext{notify} incluye un diff de cada conjunto
953 954 %TODO que se envía? revisar, pienso que es ``que se recibe''
954 \subsubsection{Configuring the \hgext{notify} hook} 955 de cambios que se envía; usted puede limitar el tamaño del diff, o
955 956 desactivar completamente esta característica. Es útil para permitir a
956 You can set up the \hgext{notify} hook to send one email message per 957 los subscriptores revisar los cambios inmediatamente, en vez de tener
957 incoming changeset, or one per incoming group of changesets (all those 958 que hacer clic para visitar una URL.
958 that arrived in a single pull or push). 959
960 \subsubsection{Configuración del gancho \hgext{notify}}
961
962 Usted puede configurar el gancho \hgext{notify} para enviar un mensaje
963 de correo por conjunto de cambios entrante, o uno por grupo entrante
964 de conjuntos de cambios (todos los que llegaron en un único empuje o
965 jalado).
959 \begin{codesample2} 966 \begin{codesample2}
960 [hooks] 967 [hooks]
961 # send one email per group of changes 968 # enviar un correo por grupo de cambios
962 changegroup.notify = python:hgext.notify.hook 969 changegroup.notify = python:hgext.notify.hook
963 # send one email per change 970 # enviar un correo por cambio
964 incoming.notify = python:hgext.notify.hook 971 incoming.notify = python:hgext.notify.hook
965 \end{codesample2} 972 \end{codesample2}
966 973
967 Configuration information for this hook lives in the 974 La información para configurar este gancho se ubica en la sección
968 \rcsection{notify} section of a \hgrc\ file. 975 \rcsection{notify} de un fichero \hgrc.
969 \begin{itemize} 976 \begin{itemize}
970 \item[\rcitem{notify}{test}] By default, this hook does not send out 977 \item[\rcitem{notify}{test}] Por defecto, este gancho no envía correos
971 email at all; instead, it prints the message that it \emph{would} 978 en absoluto; en vez de eso, imprime el mensaje que se
972 send. Set this item to \texttt{false} to allow email to be sent. 979 \emph{enviaría}. Fije este ítem en \texttt{false} para permitir el
973 The reason that sending of email is turned off by default is that it 980 envío de correos. El motivo por el que el envío de correos está
974 takes several tries to configure this extension exactly as you would 981 desactivado es que hacen falta varios intentos para configurar esta
975 like, and it would be bad form to spam subscribers with a number of 982 extensión exactamente como usted desea, y sería maleducado enviar a
976 ``broken'' notifications while you debug your configuration. 983 los subscriptores una cantidad de notificaciones ``rotas'' mientras
977 \item[\rcitem{notify}{config}] The path to a configuration file that 984 usted depura su configuración.
978 contains subscription information. This is kept separate from the 985 \item[\rcitem{notify}{config}] La ruta a un fichero de configuración
979 main \hgrc\ so that you can maintain it in a repository of its own. 986 que contiene información de subscripción. Esto se mantiene separado
980 People can then clone that repository, update their subscriptions, 987 del \hgrc\ principal para que usted pueda mantenerlo en un
981 and push the changes back to your server. 988 repositorio. La gente puede clonar ese repositorio, actualizar sus
982 \item[\rcitem{notify}{strip}] The number of leading path separator 989 subscripciones, y empujar los cambios de vuelta a su servidor.
983 characters to strip from a repository's path, when deciding whether 990 \item[\rcitem{notify}{strip}] La cantidad de caracteres iniciales de
984 a repository has subscribers. For example, if the repositories on 991 separación de ruta a remover de la ruta del repositorio, al decidir
985 your server live in \dirname{/home/hg/repos}, and \hgext{notify} is 992 si un repositorio tiene subscriptores. Por ejemplo, si los
986 considering a repository named \dirname{/home/hg/repos/shared/test}, 993 repositorios en su servidor están en \dirname{/home/hg/repos}, y
987 setting \rcitem{notify}{strip} to \texttt{4} will cause 994 \hgext{notify} está trabajando con un repositorio llamado
988 \hgext{notify} to trim the path it considers down to 995 \dirname{/home/hg/repos/shared/test}, fijar \rcitem{notify}{strip} a
989 \dirname{shared/test}, and it will match subscribers against that. 996 \texttt{4} hará que \hgext{notify} elimine las partes iniciales de
990 \item[\rcitem{notify}{template}] The template text to use when sending 997 la ruta hasta \dirname{shared/test}, y asociará los subscriptores
991 messages. This specifies both the contents of the message header 998 frente a dicha ruta.
992 and its body. 999 \item[\rcitem{notify}{template}] El texto de plantilla a usar cuando
993 \item[\rcitem{notify}{maxdiff}] The maximum number of lines of diff 1000 se envíen mensajes. Especifica los contenidos de la cabecera del
994 data to append to the end of a message. If a diff is longer than 1001 mensaje y el cuerpo del mismo.
995 this, it is truncated. By default, this is set to 300. Set this to 1002 \item[\rcitem{notify}{maxdiff}] El número máximo de líneas de datos de
996 \texttt{0} to omit diffs from notification emails. 1003 diff a añadir al final de un mensaje. Si la longitud de un diff es
997 \item[\rcitem{notify}{sources}] A list of sources of changesets to 1004 mayor a eso, se trunca. Por defecto, está fijado en 300. Fije esto a
998 consider. This lets you limit \hgext{notify} to only sending out 1005 \texttt{0} para omitir los diffs en los correos de notificación.
999 email about changes that remote users pushed into this repository 1006 \item[\rcitem{notify}{sources}] Una lista de fuentes de conjuntos de
1000 via a server, for example. See section~\ref{sec:hook:sources} for 1007 cambios a considerar. Esto le permite a usted indicar a
1001 the sources you can specify here. 1008 \hgext{notify} para que sólo envíe correos acerca de cambios que
1002 \end{itemize} 1009 usuarios remotos hayan empujado al repositorio vía un servidor, por
1003 1010 ejemplo. Vea la sección~\ref{sec:hook:sources} para las fuentes que
1004 If you set the \rcitem{web}{baseurl} item in the \rcsection{web} 1011 usted puede especificar aquí.
1005 section, you can use it in a template; it will be available as 1012 \end{itemize}
1006 \texttt{webroot}. 1013
1007 1014 Si usted fija el ítem \rcitem{web}{baseurl} en la sección
1008 Here is an example set of \hgext{notify} configuration information. 1015 \rcsection{web}, usted lo puede usar en una plantilla; estará
1016 disponible como \texttt{webroot}.
1017
1018 A continuación se presenta un ejemplo completo de configuración para
1019 el gancho \hgext{notify}.
1009 \begin{codesample2} 1020 \begin{codesample2}
1010 [notify] 1021 [notify]
1011 # really send email 1022 # enviar correo
1012 test = false 1023 test = false
1013 # subscriber data lives in the notify repo 1024 # datos de subscriptores están en el repositorio notify
1014 config = /home/hg/repos/notify/notify.conf 1025 config = /home/hg/repos/notify/notify.conf
1015 # repos live in /home/hg/repos on server, so strip 4 "/" chars 1026 # repos están en /home/hg/repos on server, así que elimine 4
1027 # caracteres"/"
1016 strip = 4 1028 strip = 4
1017 template = X-Hg-Repo: \{webroot\} 1029 template = X-Hg-Repo: \{webroot\}
1018 Subject: \{webroot\}: \{desc|firstline|strip\} 1030 Subject: \{webroot\}: \{desc|firstline|strip\}
1019 From: \{author\} 1031 From: \{author\}
1020 1032
1025 1037
1026 [web] 1038 [web]
1027 baseurl = http://hg.example.com/ 1039 baseurl = http://hg.example.com/
1028 \end{codesample2} 1040 \end{codesample2}
1029 1041
1030 This will produce a message that looks like the following: 1042 Esto producirá un mensaje que se verá como el siguiente:
1031 \begin{codesample2} 1043 \begin{codesample2}
1032 X-Hg-Repo: tests/slave 1044 X-Hg-Repo: tests/slave
1033 Subject: tests/slave: Handle error case when slave has no buffers 1045 Subject: tests/slave: Handle error case when slave has no buffers
1034 Date: Wed, 2 Aug 2006 15:25:46 -0700 (PDT) 1046 Date: Wed, 2 Aug 2006 15:25:46 -0700 (PDT)
1035 1047