comparison es/hook.tex @ 574:22184eb4c965

finished the translation of the section "information for writers of hooks" updated project status
author Javier Rojas <jerojasro@devnull.li>
date Wed, 31 Dec 2008 11:31:04 -0500
parents 9438521abfc4
children 1f9ef8b3ab79
comparison
equal deleted inserted replaced
573:9438521abfc4 574:22184eb4c965
1064 enviará ningún correo electrónico} hasta que usted la configure 1064 enviará ningún correo electrónico} hasta que usted la configure
1065 explícitamente para hacerlo, fijando el valor de \rcitem{notify}{test} 1065 explícitamente para hacerlo, fijando el valor de \rcitem{notify}{test}
1066 a \texttt{false}. Hasta que usted haga eso, simplemente se imprimirá 1066 a \texttt{false}. Hasta que usted haga eso, simplemente se imprimirá
1067 el mensaje que se \emph{enviaría}. 1067 el mensaje que se \emph{enviaría}.
1068 1068
1069 \section{Information for writers of hooks} 1069 \section{Información para escritores de ganchos}
1070 \label{sec:hook:ref} 1070 \label{sec:hook:ref}
1071 1071
1072 \subsection{In-process hook execution} 1072 \subsection{Ejecución de ganchos internos}
1073 1073
1074 An in-process hook is called with arguments of the following form: 1074 Un gancho interno es llamado con argumentos de la siguiente forma:
1075 \begin{codesample2} 1075 \begin{codesample2}
1076 def myhook(ui, repo, **kwargs): 1076 def myhook(ui, repo, **kwargs):
1077 pass 1077 pass
1078 \end{codesample2} 1078 \end{codesample2}
1079 The \texttt{ui} parameter is a \pymodclass{mercurial.ui}{ui} object. 1079 El parámetro \texttt{ui} es un objeto \pymodclass{mercurial.ui}{ui}.
1080 The \texttt{repo} parameter is a 1080 El parámetro \texttt{repo} es un objeto
1081 \pymodclass{mercurial.localrepo}{localrepository} object. The 1081 \pymodclass{mercurial.localrepo}{localrepository}. Los nombres y
1082 names and values of the \texttt{**kwargs} parameters depend on the 1082 valores de los parámetros en \texttt{**kwargs} dependen del gancho que
1083 hook being invoked, with the following common features: 1083 se invoque, con las siguientes características en común:
1084 \begin{itemize} 1084 \begin{itemize}
1085 \item If a parameter is named \texttt{node} or 1085 \item Si hay un parámetro llamado \texttt{node} o
1086 \texttt{parent\emph{N}}, it will contain a hexadecimal changeset ID. 1086 \texttt{parent\emph{N}}, contendrá un ID hexadecimal de un conjunto
1087 The empty string is used to represent ``null changeset ID'' instead 1087 de cambios. La cadena vacía es usada para representar un
1088 of a string of zeroes. 1088 ``ID de conjunto de cambios nulo'' en vez de una cadena de ceros.
1089 \item If a parameter is named \texttt{url}, it will contain the URL of 1089 \item Si hay un parámetro llamado \texttt{url}, contendrá la URL de un
1090 a remote repository, if that can be determined. 1090 repositorio remoto, si puede ser determinada.
1091 \item Boolean-valued parameters are represented as Python 1091 \item Los parámetros booleanos son representados como objetos
1092 \texttt{bool} objects. 1092 \texttt{bool} de Python.
1093 \end{itemize} 1093 \end{itemize}
1094 1094
1095 An in-process hook is called without a change to the process's working 1095 Un gancho interno es ejecutado sin cambiar el directorio de trabajo
1096 directory (unlike external hooks, which are run in the root of the 1096 del proceso (a diferencia de los ganchos externos, que son ejecutados
1097 repository). It must not change the process's working directory, or 1097 desde la raíz del repositorio). El gancho no debe cambiar el
1098 it will cause any calls it makes into the Mercurial API to fail. 1098 directorio de trabajo del proceso, porque esto haría que falle
1099 1099 cualquier llamada que se haga a la API de Mercurial.
1100 If a hook returns a boolean ``false'' value, it is considered to have 1100
1101 succeeded. If it returns a boolean ``true'' value or raises an 1101 Si un gancho retorna el valor booleano ``false''\footnote{Falso.}, se
1102 exception, it is considered to have failed. A useful way to think of 1102 considera que éste tuvo éxito. Si retorna
1103 the calling convention is ``tell me if you fail''. 1103 ``true''\footnote{Verdadero.} o genera una excepción, se considera que
1104 1104 ha fallado. Una manera útil de pensar en esta convención de llamado es
1105 Note that changeset IDs are passed into Python hooks as hexadecimal 1105 ``dígame si usted falló''.
1106 strings, not the binary hashes that Mercurial's APIs normally use. To 1106
1107 convert a hash from hex to binary, use the 1107 Note que los IDs de conjuntos de cambios son pasados a los ganchos de
1108 \pymodfunc{mercurial.node}{bin} function. 1108 Python como cadenas hexadecimales, no como los hashes binarios que la
1109 1109 API de Mercurial usa normalmente. Para convertir un hash de
1110 \subsection{External hook execution} 1110 hexadecimal a binario, use la función \pymodfunc{mercurial.node}{bin}.
1111 1111
1112 An external hook is passed to the shell of the user running Mercurial. 1112 \subsection{Ejecución de ganchos externos}
1113 Features of that shell, such as variable substitution and command 1113
1114 redirection, are available. The hook is run in the root directory of 1114 Un gancho externo es pasado al intérprete de comandos del usuario bajo
1115 the repository (unlike in-process hooks, which are run in the same 1115 el cual se ejecuta Mercurial. Las características del intérprete, como
1116 directory that Mercurial was run in). 1116 sustitución de variables y redirección de comandos, están disponibles.
1117 1117 El gancho es ejecutado desde el directorio raíz del repositorio
1118 Hook parameters are passed to the hook as environment variables. Each 1118 (a diferencia de los ganchos internos, que se ejecutan desde el mismo
1119 environment variable's name is converted in upper case and prefixed 1119 directorio en que Mercurial fue ejecutado).
1120 with the string ``\texttt{HG\_}''. For example, if the name of a 1120
1121 parameter is ``\texttt{node}'', the name of the environment variable 1121 Los parámetros para el gancho se pasan como variables de entorno. El
1122 representing that parameter will be ``\texttt{HG\_NODE}''. 1122 nombre de cada variable de entorno se pasa a mayúsculas y se le añade
1123 1123 el prefijo ``\texttt{HG\_}''. Por ejemplo, si el nombre de un
1124 A boolean parameter is represented as the string ``\texttt{1}'' for 1124 parámetro es ``\texttt{node}'', el nombre de la variable de entorno
1125 ``true'', ``\texttt{0}'' for ``false''. If an environment variable is 1125 que almacena el parámetro se llamará ``\texttt{HG\_NODE}''.
1126 named \envar{HG\_NODE}, \envar{HG\_PARENT1} or \envar{HG\_PARENT2}, it 1126
1127 contains a changeset ID represented as a hexadecimal string. The 1127 Un parámetro booleano se representa con la cadena ``\texttt{1}'' para
1128 empty string is used to represent ``null changeset ID'' instead of a 1128 ``true'', ``\texttt{0}'' para ``false''. Si una variable se llama
1129 string of zeroes. If an environment variable is named 1129 \envar{HG\_NODE}, \envar{HG\_PARENT1} o \envar{HG\_PARENT2},
1130 \envar{HG\_URL}, it will contain the URL of a remote repository, if 1130 contendrá un ID de conjunto de cambios representado como una cadena
1131 that can be determined. 1131 hexadecimal. La cadena vacía es usada para representar un ``ID de
1132 1132 conjunto de cambios nulo'' en vez de una cadena de ceros. Si una
1133 If a hook exits with a status of zero, it is considered to have 1133 variable de entorno se llama \envar{HG\_URL}, contendrá la URL de un
1134 succeeded. If it exits with a non-zero status, it is considered to 1134 repositorio remoto, si puede ser determinada.
1135 have failed. 1135
1136 1136 Si un gancho termina con un código de salida de cero, se considera que
1137 \subsection{Finding out where changesets come from} 1137 tuvo éxito. Si termina con un código de salida diferente de cero, se
1138 1138 considera que falló.
1139 A hook that involves the transfer of changesets between a local 1139
1140 repository and another may be able to find out information about the 1140 \subsection{Averiguar de dónde vienen los conjuntos de cambios}
1141 ``far side''. Mercurial knows \emph{how} changes are being 1141 %TODO los trae la cigüeña. De París. Y quedan debajo de una col.
1142 transferred, and in many cases \emph{where} they are being transferred 1142
1143 to or from. 1143 Un gancho que involucra la transferencia de conjuntos de cambios entre
1144 1144 un repositorio local y otro puede ser capaz de averiguar información
1145 \subsubsection{Sources of changesets} 1145 acerca de ``el otro lado''. Mercurial sabe \emph{cómo} son
1146 transferidos los conjuntos de cambios, y en muchos casos también desde
1147 o hacia donde están siendo transferidos.
1148
1149 \subsubsection{Fuentes de conjuntos de cambios}
1146 \label{sec:hook:sources} 1150 \label{sec:hook:sources}
1147 1151
1148 Mercurial will tell a hook what means are, or were, used to transfer 1152 Mercurial le indicará a un gancho cuáles son, o fueron, los medios
1149 changesets between repositories. This is provided by Mercurial in a 1153 usados para transferir los conjuntos de cambios entre repositorios.
1150 Python parameter named \texttt{source}, or an environment variable named 1154 Esta información es provista por Mercurial en un parámetro Python
1151 \envar{HG\_SOURCE}. 1155 llamado \texttt{source}\footnote{Fuente.}, o una variable de entorno
1152 1156 llamada \envar{HG\_SOURCE}.
1153 \begin{itemize} 1157
1154 \item[\texttt{serve}] Changesets are transferred to or from a remote 1158 \begin{itemize}
1155 repository over http or ssh. 1159 \item[\texttt{serve}] Los conjuntos de cambios son transferidos desde
1156 \item[\texttt{pull}] Changesets are being transferred via a pull from 1160 o hacia un repositorio remoto a través de http o ssh.
1157 one repository into another. 1161 \item[\texttt{pull}] Los conjuntos de cambios son transferidos vía una
1158 \item[\texttt{push}] Changesets are being transferred via a push from 1162 operación de jalado de un repositorio a otro.
1159 one repository into another. 1163 \item[\texttt{push}] Los conjuntos de cambios son transferidos vía un
1160 \item[\texttt{bundle}] Changesets are being transferred to or from a 1164 empuje de un repositorio a otro.
1161 bundle. 1165 \item[\texttt{bundle}] Los conjuntos de cambios son transferidos desde
1162 \end{itemize} 1166 %TODO bundle
1163 1167 o hacia un bundle.
1164 \subsubsection{Where changes are going---remote repository URLs} 1168 \end{itemize}
1169
1170 \subsubsection{A dónde van los cambios---URLs de repositorios remotos}
1165 \label{sec:hook:url} 1171 \label{sec:hook:url}
1166 1172 %TODO al cielo? no, ésos son los perros
1167 When possible, Mercurial will tell a hook the location of the ``far 1173
1168 side'' of an activity that transfers changeset data between 1174 Cuando es posible, Mercurial le indicará a los ganchos la ubicación de
1169 repositories. This is provided by Mercurial in a Python parameter 1175 ``el otro lado'' de una actividad que transfiera datos de conjuntos de
1170 named \texttt{url}, or an environment variable named \envar{HG\_URL}. 1176 cambios entre repositorios. Esto es provisto por Mercurial en un
1171 1177 parámetro Python llamado \texttt{url}, o en una variable de entorno
1172 This information is not always known. If a hook is invoked in a 1178 llamada \envar{HG\_URL}.
1173 repository that is being served via http or ssh, Mercurial cannot tell 1179
1174 where the remote repository is, but it may know where the client is 1180 No siempre esta información está disponible. Si un gancho es invocado
1175 connecting from. In such cases, the URL will take one of the 1181 un repositorio que es servido a través de http o ssh, Mercurial no
1176 following forms: 1182 puede averiguar dónde está el repositorio remoto, pero puede saber
1177 \begin{itemize} 1183 desde dónde se conecta el cliente. En esos casos, la URL tendrá una de
1178 \item \texttt{remote:ssh:\emph{ip-address}}---remote ssh client, at 1184 las siguientes formas:
1179 the given IP address. 1185 \begin{itemize}
1180 \item \texttt{remote:http:\emph{ip-address}}---remote http client, at 1186 \item \texttt{remote:ssh:\emph{ip-address}}---cliente ssh remoto, en
1181 the given IP address. If the client is using SSL, this will be of 1187 la dirección IP dada.
1182 the form \texttt{remote:https:\emph{ip-address}}. 1188 \item \texttt{remote:http:\emph{ip-address}}---cliente remoto http, en
1183 \item Empty---no information could be discovered about the remote 1189 la dirección IP dada. Si el cliente está usando SSL, tendrá la forma
1184 client. 1190 \texttt{remote:https:\emph{ip-address}}.
1191 \item Vacío---no se pudo descubrir información acerca del cliente
1192 remoto.
1185 \end{itemize} 1193 \end{itemize}
1186 1194
1187 \section{Hook reference} 1195 \section{Hook reference}
1188 1196
1189 \subsection{\hook{changegroup}---after remote changesets added} 1197 \subsection{\hook{changegroup}---after remote changesets added}