hgbook
changeset 478:95bc07aaf1a8
merged work from Igor
author | Javier Rojas <jerojasro@devnull.li> |
---|---|
date | Sat Jan 03 18:31:12 2009 -0500 (2009-01-03) |
parents | 1f9ef8b3ab79 1b8b19825994 |
children | 5236357a00b2 |
files | es/Leame.1st |
line diff
1.1 --- a/es/Leame.1st Fri Jan 02 22:30:00 2009 -0500 1.2 +++ b/es/Leame.1st Sat Jan 03 18:31:12 2009 -0500 1.3 @@ -108,12 +108,12 @@ 1.4 || hook.tex || Javier Rojas || 78% || 01/12/2008 || || 1.5 || mq.tex || Igor Támara || 100% || 06/12/2008 || 13/12/2008 || 1.6 || hgext.tex || Igor Támara || 100% || 13/12/2008 || 16/12/2008 || 1.7 -|| template.tex || Igor Támara || || || || 1.8 +|| template.tex || Igor Támara || 100% || 27/12/2008 || 01/01/2009 || 1.9 || mq-collab.tex || Javier Rojas || || || || 1.10 || mq-ref.tex || Javier Rojas || || || || 1.11 -|| cmdref.tex || || || || || 1.12 +|| cmdref.tex || Igor Támara || 100% || 01/01/2009 || 01/01/2009 || 1.13 || license.tex || Igor Támara || 100% || 16/12/2008 || 16/12/2008 || 1.14 -|| srcinstall.tex || || || || || 1.15 +|| srcinstall.tex || Igor Támara || 100% || 01/01/2009 || 01/01/2009 || 1.16 1.17 == Archivos en proceso de revisión == 1.18 ||'''archivo''' || '''revisor''' ||'''Estado'''||'''Inicio'''|| '''Fin''' || 1.19 @@ -128,6 +128,13 @@ 1.20 || intro.tex || || || || || 1.21 || collab.tex || Javier Rojas || || || || 1.22 || mq.tex || || || || || 1.23 +|| hgext.tex || || || || || 1.24 +|| template.tex || || || || || 1.25 +|| mq-collab.tex || || || || || 1.26 +|| mq-ref.tex || || || || || 1.27 +|| cmdref.tex || || || || || 1.28 +|| license.tex || || || || || 1.29 +|| srcinstall.tex || || || || || 1.30 1.31 == Archivos terminados == 1.32 1.33 @@ -163,15 +170,18 @@ 1.34 Commit: Consignar 1.35 Core: alma 1.36 Directory: Directorio 1.37 + Escape Sequence: Secuencia de control 1.38 File: fichero 1.39 Filelog: fichero de registro 1.40 Fold: Integrar 1.41 Fork: Bifurcación 1.42 + Hash: No se traduce 1.43 Head: Principal. En el contexto de revisiones HEAD se sugiere usar "frente" 1.44 Hook: Gancho 1.45 Merge: Fusión 1.46 Milestone: Etapa 1.47 Mistake: Equivocación, cometida por un humano 1.48 + Output: salida o despliegue 1.49 Patch: Parche 1.50 Path: Ruta de archivo 1.51 Pointer: apuntador 1.52 @@ -188,6 +198,7 @@ 1.53 Stack: pila 1.54 Sprint: sprint 1.55 Tarball: paquete de cambios 1.56 + Timestamp : marca de tiempo 1.57 Tip: punta 1.58 Update: actualización 1.59 Upstream: principal, mantenedor principal. De acuerdo al contexto. 1.60 @@ -390,7 +401,7 @@ 1.61 e integridad al devolver un conjunto de acciones que permitan dejar 1.62 el repositorio en un estado consistente previo. 1.63 1.64 -repository layout -> estructura del repositorio En referencia a cómo 1.65 +repository layou t-> estructura del repositorio En referencia a cómo 1.66 están organizados los directorios. 1.67 1.68 schedule -> programa o planifica
2.1 --- a/es/cmdref.tex Fri Jan 02 22:30:00 2009 -0500 2.2 +++ b/es/cmdref.tex Sat Jan 03 18:31:12 2009 -0500 2.3 @@ -1,174 +1,184 @@ 2.4 -\chapter{Command reference} 2.5 +\chapter{Referencia de Órdenes} 2.6 \label{cmdref} 2.7 2.8 -\cmdref{add}{add files at the next commit} 2.9 +\cmdref{add}{Añade ficheros en la próxima consignación} 2.10 \optref{add}{I}{include} 2.11 \optref{add}{X}{exclude} 2.12 \optref{add}{n}{dry-run} 2.13 2.14 -\cmdref{diff}{print changes in history or working directory} 2.15 +\cmdref{diff}{imprime los cambios en la historia o el directorio actual} 2.16 2.17 -Show differences between revisions for the specified files or 2.18 -directories, using the unified diff format. For a description of the 2.19 -unified diff format, see section~\ref{sec:mq:patch}. 2.20 +Mostrar las diferencias entre revisiones para ficheros especificados o 2.21 +directorios, con el formato unificado diff. Si desea ver una 2.22 +descripción del formato unificado diff, ver la sección~\ref{sec:mq:patch}. 2.23 2.24 -By default, this command does not print diffs for files that Mercurial 2.25 -considers to contain binary data. To control this behaviour, see the 2.26 -\hgopt{diff}{-a} and \hgopt{diff}{--git} options. 2.27 +De forma predeterminada, esta orden no imprime las diferencias para 2.28 +los archivos binarios que Mercurial esté siguiendo. Para controlar 2.29 +este comportamiento, vea las opciones \hgopt{diff}{-a} y 2.30 +\hgopt{diff}{--git}. 2.31 2.32 \subsection{Options} 2.33 2.34 \loptref{diff}{nodates} 2.35 2.36 -Omit date and time information when printing diff headers. 2.37 +Omite la fecha y hora cuando se muestran los encabezados de las 2.38 +diferencias. 2.39 2.40 \optref{diff}{B}{ignore-blank-lines} 2.41 2.42 -Do not print changes that only insert or delete blank lines. A line 2.43 -that contains only whitespace is not considered blank. 2.44 +No imprime los cambios que solamente insertan o eliminan líneas en 2.45 +blanco. Una línea que contiene espacios en blanco no se considera 2.46 +como una línea en blanco. 2.47 2.48 \optref{diff}{I}{include} 2.49 2.50 -Include files and directories whose names match the given patterns. 2.51 +Incluye ficheros y directorios cuyos nombres coinciden con los 2.52 +patrones elegidos. 2.53 2.54 \optref{diff}{X}{exclude} 2.55 2.56 -Exclude files and directories whose names match the given patterns. 2.57 +Excluye los ficheros y directorios cuyos nombres coinciden con los 2.58 +patrones elegidos. 2.59 2.60 \optref{diff}{a}{text} 2.61 2.62 -If this option is not specified, \hgcmd{diff} will refuse to print 2.63 -diffs for files that it detects as binary. Specifying \hgopt{diff}{-a} 2.64 -forces \hgcmd{diff} to treat all files as text, and generate diffs for 2.65 -all of them. 2.66 +Si no especifica esta opción, \hgcmd{diff} no mostrará las diferencias 2.67 +de los ficheros que detecte como binarios. Al especificar \hgopt{diff}{-a} 2.68 +se forza a \hgcmd{diff} a tratar los ficheros como texto, y generar 2.69 +diferencias para todos. 2.70 2.71 -This option is useful for files that are ``mostly text'' but have a 2.72 -few embedded NUL characters. If you use it on files that contain a 2.73 -lot of binary data, its output will be incomprehensible. 2.74 +Esta opción es útil para los ficherso que son ``texto en mayor 2.75 +medida'' pero que tienen caracteres NUL. Si lo usa en ficheros que 2.76 +contienen muchos datos binarios, la salida será incomprensible. 2.77 2.78 \optref{diff}{b}{ignore-space-change} 2.79 2.80 -Do not print a line if the only change to that line is in the amount 2.81 -of white space it contains. 2.82 +No imprime si el único cambio que en la línea es la cantidad de 2.83 +espacio en blanco. 2.84 2.85 \optref{diff}{g}{git} 2.86 2.87 -Print \command{git}-compatible diffs. XXX reference a format 2.88 +Mostrar diferencias compatibles con \command{git}. XXX reference a format 2.89 description. 2.90 2.91 \optref{diff}{p}{show-function} 2.92 2.93 -Display the name of the enclosing function in a hunk header, using a 2.94 -simple heuristic. This functionality is enabled by default, so the 2.95 -\hgopt{diff}{-p} option has no effect unless you change the value of 2.96 -the \rcitem{diff}{showfunc} config item, as in the following example. 2.97 +Mostrar el nombre de la función que contiene el código en una porción 2.98 +del encabzado usando una heurística simple. Esta funcionalidad se 2.99 +habilita de forma predeterminada, así que la opción \hgopt{diff}{-p} 2.100 +no tiene efectos a menos que cambie el valor de 2.101 +\rcitem{diff}{showfunc} en la configuración, como en el ejemplo 2.102 +siguiente. 2.103 \interaction{cmdref.diff-p} 2.104 2.105 \optref{diff}{r}{rev} 2.106 2.107 -Specify one or more revisions to compare. The \hgcmd{diff} command 2.108 -accepts up to two \hgopt{diff}{-r} options to specify the revisions to 2.109 -compare. 2.110 +Especifique una o más revisiones para comparar. La orden \hgcmd{diff} 2.111 +acepta hasta dos opciones \hgopt{diff}{-r} para especificar las 2.112 +revisiones a comparar. 2.113 2.114 \begin{enumerate} 2.115 \setcounter{enumi}{0} 2.116 -\item Display the differences between the parent revision of the 2.117 - working directory and the working directory. 2.118 -\item Display the differences between the specified changeset and the 2.119 - working directory. 2.120 -\item Display the differences between the two specified changesets. 2.121 +\item Despliega las diferencias entre la revisión padre y del directorio 2.122 + de trabajo. 2.123 +\item Despliega las diferencias entre el conjunto de cambios 2.124 + especificados y el directorio de trabajo. 2.125 +\item Despliega las diferencias entre dos conjuntos de cambios 2.126 + especificados. 2.127 \end{enumerate} 2.128 2.129 -You can specify two revisions using either two \hgopt{diff}{-r} 2.130 -options or revision range notation. For example, the two revision 2.131 -specifications below are equivalent. 2.132 +Puede especificar dos revisiones usando o bien sea las opciones 2.133 +\hgopt{diff}{-r} o la notación de rango. Por ejemplo, las dos 2.134 +especificaciones de revisiones a continuación son equivalentes: 2.135 \begin{codesample2} 2.136 hg diff -r 10 -r 20 2.137 hg diff -r10:20 2.138 \end{codesample2} 2.139 2.140 -When you provide two revisions, Mercurial treats the order of those 2.141 -revisions as significant. Thus, \hgcmdargs{diff}{-r10:20} will 2.142 -produce a diff that will transform files from their contents as of 2.143 -revision~10 to their contents as of revision~20, while 2.144 -\hgcmdargs{diff}{-r20:10} means the opposite: the diff that will 2.145 -transform files from their revision~20 contents to their revision~10 2.146 -contents. You cannot reverse the ordering in this way if you are 2.147 -diffing against the working directory. 2.148 +Cuando especifica dos revisiones, esto tiene significado para 2.149 +Mercurial. Esto significa que \hgcmdargs{diff}{-r10:20} producirá un 2.150 +diff que transformará los ficheros desde los contenidos en la revisión 2.151 +10 a los contenidos de la revisión 20, mientras que 2.152 +\hgcmdargs{diff}{-r20:10} significa lo opuesto: el diff que 2.153 +transformaría los contenidos de los ficheros de la revisión 20 a los 2.154 +contenidos de la revisión 10. No puede invertir el orden de esta 2.155 +forma si está haciendo un diff frente al directorio de trabajo. 2.156 2.157 \optref{diff}{w}{ignore-all-space} 2.158 2.159 -\cmdref{version}{print version and copyright information} 2.160 +\cmdref{version}{imprime la información de versión y derechos de reproducción} 2.161 2.162 -This command displays the version of Mercurial you are running, and 2.163 -its copyright license. There are four kinds of version string that 2.164 -you may see. 2.165 +Esta orden despliega la versión de Mercurial que está usando, y su 2.166 +nota de derechos de reproducción. Hay cuatro clases de cadenas de 2.167 +versión posibles: 2.168 \begin{itemize} 2.169 -\item The string ``\texttt{unknown}''. This version of Mercurial was 2.170 - not built in a Mercurial repository, and cannot determine its own 2.171 - version. 2.172 -\item A short numeric string, such as ``\texttt{1.1}''. This is a 2.173 - build of a revision of Mercurial that was identified by a specific 2.174 - tag in the repository where it was built. (This doesn't necessarily 2.175 - mean that you're running an official release; someone else could 2.176 - have added that tag to any revision in the repository where they 2.177 - built Mercurial.) 2.178 -\item A hexadecimal string, such as ``\texttt{875489e31abe}''. This 2.179 - is a build of the given revision of Mercurial. 2.180 -\item A hexadecimal string followed by a date, such as 2.181 - ``\texttt{875489e31abe+20070205}''. This is a build of the given 2.182 - revision of Mercurial, where the build repository contained some 2.183 - local changes that had not been committed. 2.184 +\item La cadena ``\texttt{unknown}''. Esta versión de Mercurial no fue 2.185 + construida en un repositorio de Mercurial, y no puede determinar su 2.186 + propia versión. 2.187 +\item Una cadena numérica corta, tal como ``\texttt{1.1}''. Esta es 2.188 + una construcción de una versión de Mercurial que se identifica con 2.189 + una etiqueta específica en el repositorio en el cual fue 2.190 + armada(Esto no significa necesariamente que está ejecutando una 2.191 + versión oficial; alguien pudo haber añadido tal etiqueta a cualquier 2.192 + versión del repositorio en el cual armaron Mercurial). 2.193 +\item Una cadena hexadecimal, tal como ``\texttt{875489e31abe}''. 2.194 + Esta es una construcción de una revisión dada de Mercurial. 2.195 +\item Una cadena hexadecimal seguida por una fecha, tal como 2.196 + ``\texttt{875489e31abe+20070205}''. Esta construcción de la 2.197 + revisión de Mercurial fue la construcción de un repositorio que tuvo 2.198 + cambios locales que no han sido consignados. 2.199 \end{itemize} 2.200 2.201 -\subsection{Tips and tricks} 2.202 +\subsection{Consejos y trucos} 2.203 2.204 -\subsubsection{Why do the results of \hgcmd{diff} and \hgcmd{status} 2.205 - differ?} 2.206 +\subsubsection{¿Por qué difieren los resultados de \hgcmd{diff} y 2.207 + \hgcmd{status}?} 2.208 \label{cmdref:diff-vs-status} 2.209 2.210 -When you run the \hgcmd{status} command, you'll see a list of files 2.211 -that Mercurial will record changes for the next time you perform a 2.212 -commit. If you run the \hgcmd{diff} command, you may notice that it 2.213 -prints diffs for only a \emph{subset} of the files that \hgcmd{status} 2.214 -listed. There are two possible reasons for this. 2.215 +Cuando ejecuta la orden \hgcmd{status}, verá una lista de ficheros 2.216 +para los cuales Mercurial almacenará cambios la próxima vez que 2.217 +consigne. Si ejecuta la orden \hgcmd{diff}, verá que imprime 2.218 +diferencias solamente para un \emph{subconjunto} de los ficheros que 2.219 +\hgcmd{status} liste. Hay dos posibles razones para este comportamiento: 2.220 2.221 -The first is that \hgcmd{status} prints some kinds of modifications 2.222 -that \hgcmd{diff} doesn't normally display. The \hgcmd{diff} command 2.223 -normally outputs unified diffs, which don't have the ability to 2.224 -represent some changes that Mercurial can track. Most notably, 2.225 -traditional diffs can't represent a change in whether or not a file is 2.226 -executable, but Mercurial records this information. 2.227 +La primera es que \hgcmd{status} imprime cierta clase de 2.228 +modificaciones que \hgcmd{diff} no despliega normalmente. La orden 2.229 +\hgcmd{diff} usualmente despliega diferencias unificadas, las cuales 2.230 +no tienen la habilidad de representar algunos cambios que Mercurial 2.231 +puede seguir. Lo más notable es que las diferencias tradicionales no 2.232 +pueden representar un cambio acerca de la ejecutabilidad de un 2.233 +fichero, pero Mercurial sí almacena esta información. 2.234 2.235 -If you use the \hgopt{diff}{--git} option to \hgcmd{diff}, it will 2.236 -display \command{git}-compatible diffs that \emph{can} display this 2.237 -extra information. 2.238 +Si usa la opción \hgopt{diff}{--git} de \hgcmd{diff}, mostrará 2.239 +diferencias compatibles con \command{git} que \emph{pueden} desplegar 2.240 +esta información adicional. 2.241 2.242 -The second possible reason that \hgcmd{diff} might be printing diffs 2.243 -for a subset of the files displayed by \hgcmd{status} is that if you 2.244 -invoke it without any arguments, \hgcmd{diff} prints diffs against the 2.245 -first parent of the working directory. If you have run \hgcmd{merge} 2.246 -to merge two changesets, but you haven't yet committed the results of 2.247 -the merge, your working directory has two parents (use \hgcmd{parents} 2.248 -to see them). While \hgcmd{status} prints modifications relative to 2.249 -\emph{both} parents after an uncommitted merge, \hgcmd{diff} still 2.250 -operates relative only to the first parent. You can get it to print 2.251 -diffs relative to the second parent by specifying that parent with the 2.252 -\hgopt{diff}{-r} option. There is no way to print diffs relative to 2.253 -both parents. 2.254 +La segunda razón posible para que \hgcmd{diff} esté imprimiendo 2.255 +diferencias para un subconjunto de ficheros de lo que muestra 2.256 +\hgcmd{status} es que si usted le invoca sin argumento alguno, 2.257 +\hgcmd{diff} imprime diferencias frente al primer padre del directorio 2.258 +de trabajo. Si ha ejecutado \hgcmd{merge} para fusionar dos conjuntos 2.259 +de cambios, pero no ha consignado aún los resultados de la fusión, su 2.260 +directorio de trabajo tiene dos padres(use \hgcmd{parents} para 2.261 +verlos). Mientras que \hgcmd{status} imprime modificaciones relativas 2.262 +a \emph{ambos} padres después de una fusión que no se ha consignado, 2.263 +\hgcmd{diff} opera aún relativo solamente al primer padre. Puede 2.264 +lograr que imprima las diferencias relativas al segundo padre 2.265 +especificando tal padre con la opción \hgopt{diff}{-r}. No hay forma 2.266 +de hacer que imprima las diferencias relativas a los dos padres. 2.267 2.268 -\subsubsection{Generating safe binary diffs} 2.269 +\subsubsection{Generar diferencias seguras en binarios} 2.270 2.271 -If you use the \hgopt{diff}{-a} option to force Mercurial to print 2.272 -diffs of files that are either ``mostly text'' or contain lots of 2.273 -binary data, those diffs cannot subsequently be applied by either 2.274 -Mercurial's \hgcmd{import} command or the system's \command{patch} 2.275 -command. 2.276 +Si usa la opción \hgopt{diff}{-a} para forzar que Mercurial imprima 2.277 +las diferencias de los ficheros que so o bien ``casi completamente 2.278 +texto'' o contienen muchos datos binarios, tales diferencias no pueden 2.279 +aplicarse subsecuentemente a la orden \hgcmd{import} de Mercurial o a 2.280 +la orden \command{patch} del sistema. 2.281 2.282 -If you want to generate a diff of a binary file that is safe to use as 2.283 -input for \hgcmd{import}, use the \hgcmd{diff}{--git} option when you 2.284 -generate the patch. The system \command{patch} command cannot handle 2.285 -binary patches at all. 2.286 +Si desea generar una diferencia de un fichero binario que es seguro 2.287 +para usarlo como entrada a la orden \hgcmd{import}, use la opción 2.288 +\hgcmd{diff}{--git} cuando genere el parche. La orden \command{patch} 2.289 +del sistema no puede tratar con parches binarios. 2.290 2.291 %%% Local Variables: 2.292 %%% mode: latex
3.1 --- a/es/srcinstall.tex Fri Jan 02 22:30:00 2009 -0500 3.2 +++ b/es/srcinstall.tex Sat Jan 03 18:31:12 2009 -0500 3.3 @@ -1,51 +1,53 @@ 3.4 -\chapter{Installing Mercurial from source} 3.5 +\chapter{Instalar Mercurial desde las fuentes} 3.6 \label{chap:srcinstall} 3.7 3.8 -\section{On a Unix-like system} 3.9 +\section{En un sistema tipo Unix} 3.10 \label{sec:srcinstall:unixlike} 3.11 3.12 -If you are using a Unix-like system that has a sufficiently recent 3.13 -version of Python (2.3~or newer) available, it is easy to install 3.14 -Mercurial from source. 3.15 +Si usa un sistema tipo Unix que tiene una versión suficientemente 3.16 +reciente de Python(2.3~o superior) disponible, es fácil instalar 3.17 +Mercurial desde las fuentes. 3.18 \begin{enumerate} 3.19 -\item Download a recent source tarball from 3.20 +\item Descargue un paquete fuente reciente de 3.21 \url{http://www.selenic.com/mercurial/download}. 3.22 -\item Unpack the tarball: 3.23 +\item Descomprímalo: 3.24 \begin{codesample4} 3.25 gzip -dc mercurial-\emph{version}.tar.gz | tar xf - 3.26 \end{codesample4} 3.27 -\item Go into the source directory and run the installer script. This 3.28 - will build Mercurial and install it in your home directory. 3.29 +\item Vaya al directorio fuente y ejecute el guión de instalación. 3.30 + Esto armará Mercurial y lo instalará en su directorio casa: 3.31 \begin{codesample4} 3.32 cd mercurial-\emph{version} 3.33 python setup.py install --force --home=\$HOME 3.34 \end{codesample4} 3.35 \end{enumerate} 3.36 -Once the install finishes, Mercurial will be in the \texttt{bin} 3.37 -subdirectory of your home directory. Don't forget to make sure that 3.38 -this directory is present in your shell's search path. 3.39 +Cuando termine la instalación, Mercurial estará en el subdirectorio 3.40 +\texttt{bin} de su directorio casa. No olvide asegurarse de que este 3.41 +directorio esté presente en el camino de búsqueda de su intérprete de 3.42 +órdenes. 3.43 3.44 -You will probably need to set the \envar{PYTHONPATH} environment 3.45 -variable so that the Mercurial executable can find the rest of the 3.46 -Mercurial packages. For example, on my laptop, I have set it to 3.47 -\texttt{/home/bos/lib/python}. The exact path that you will need to 3.48 -use depends on how Python was built for your system, but should be 3.49 -easy to figure out. If you're uncertain, look through the output of 3.50 -the installer script above, and see where the contents of the 3.51 -\texttt{mercurial} directory were installed to. 3.52 +Probablemente necesitará establecer la variable de ambiente 3.53 +\envar{PYTHONPATH} de tal forma que los ejecutables de Mercurial 3.54 +puedan encontrar el resto de los paquetes de Mercurial. Por ejemplo, 3.55 +en mi portátil, la establecía a \texttt{/home/bos/lib/python}. La 3.56 +ruta exacta que usted use dependerá de como ha sido construído Python 3.57 +en su sistema, pero debería ser fácil deducirla. Si no está seguro, 3.58 +mire lo que haya mostrado el script en el paso anterior, y vea dónde 3.59 +se instalaron los contenidos del directorio \texttt{mercurial} se 3.60 +instalaron. 3.61 3.62 -\section{On Windows} 3.63 +\section{En Windows} 3.64 3.65 -Building and installing Mercurial on Windows requires a variety of 3.66 -tools, a fair amount of technical knowledge, and considerable 3.67 -patience. I very much \emph{do not recommend} this route if you are a 3.68 -``casual user''. Unless you intend to hack on Mercurial, I strongly 3.69 -suggest that you use a binary package instead. 3.70 +Armar e instalar Mercurial en Windows requiere una variedad de 3.71 +herramientas, cierta suficiencia técnica y paciencia considerable. 3.72 +Personalmente, \emph{no le recomiendo} hacerlo si es un ``usuario 3.73 +casual''. A menos que intente hacer hacks a Mercurial, le recomiendo 3.74 +que mejor use un paquete binario. 3.75 3.76 -If you are intent on building Mercurial from source on Windows, follow 3.77 -the ``hard way'' directions on the Mercurial wiki at 3.78 +Si está decidido a construir Mercurial desde las fuentes en Windows, 3.79 +siga el ``camino difícil'' indicado en el wiki de Mercurial en 3.80 \url{http://www.selenic.com/mercurial/wiki/index.cgi/WindowsInstall}, 3.81 -and expect the process to involve a lot of fiddly work. 3.82 +y espere que el proceso sea realmente un trabajo duro. 3.83 3.84 %%% Local Variables: 3.85 %%% mode: latex
4.1 --- a/es/template.tex Fri Jan 02 22:30:00 2009 -0500 4.2 +++ b/es/template.tex Sat Jan 03 18:31:12 2009 -0500 4.3 @@ -1,144 +1,153 @@ 4.4 -\chapter{Customising the output of Mercurial} 4.5 +\chapter{Personalizar los mensajes de Mercurial} 4.6 \label{chap:template} 4.7 4.8 -Mercurial provides a powerful mechanism to let you control how it 4.9 -displays information. The mechanism is based on templates. You can 4.10 -use templates to generate specific output for a single command, or to 4.11 -customise the entire appearance of the built-in web interface. 4.12 - 4.13 -\section{Using precanned output styles} 4.14 +Mercurial provee un poderoso mecanismo que permite controlar como 4.15 +despliega la información. El mecanismo se basa en plantillas. Puede 4.16 +usar plantillas para generar salida específica para una orden 4.17 +particular o para especificar la visualización completa de la interfaz 4.18 +web embebida. 4.19 + 4.20 +\section{Usar estilos que vienen con Mercurial} 4.21 \label{sec:style} 4.22 4.23 -Packaged with Mercurial are some output styles that you can use 4.24 -immediately. A style is simply a precanned template that someone 4.25 -wrote and installed somewhere that Mercurial can find. 4.26 - 4.27 -Before we take a look at Mercurial's bundled styles, let's review its 4.28 -normal output. 4.29 +Hay ciertos estilos listos que vienen con Mercurial. Un estilo es 4.30 +simplemente una plantilla predeterminada que alguien escribió e 4.31 +instaló en un sitio en el cual Mercurial puede encontrarla. 4.32 + 4.33 +Antes de dar un vistazo a los estilos que trae Mercurial, revisemos su 4.34 +salida usual. 4.35 4.36 \interaction{template.simple.normal} 4.37 4.38 -This is somewhat informative, but it takes up a lot of space---five 4.39 -lines of output per changeset. The \texttt{compact} style reduces 4.40 -this to three lines, presented in a sparse manner. 4.41 +Es en cierta medida informativa, pero ocupa mucho espacio---cinco 4.42 +líneas de salida por cada conjunto de cambios. El estilo 4.43 +\texttt{compact} lo reduce a tres líneas, presentadas de forma 4.44 +suscinta. 4.45 4.46 \interaction{template.simple.compact} 4.47 4.48 -The \texttt{changelog} style hints at the expressive power of 4.49 -Mercurial's templating engine. This style attempts to follow the GNU 4.50 -Project's changelog guidelines\cite{web:changelog}. 4.51 +El estilo de la \texttt{bitácora de cambios} vislumbra el poder 4.52 +expresivo del sistema de plantillas de Mercurial. Este estilo busca 4.53 +seguir los estándares de bitácora de cambios del proyecto 4.54 +GNU\cite{web:changelog}. 4.55 4.56 \interaction{template.simple.changelog} 4.57 4.58 -You will not be shocked to learn that Mercurial's default output style 4.59 -is named \texttt{default}. 4.60 - 4.61 -\subsection{Setting a default style} 4.62 - 4.63 -You can modify the output style that Mercurial will use for every 4.64 -command by editing your \hgrc\ file, naming the style you would 4.65 -prefer to use. 4.66 +No es una sorpresa que el estilo predeterminado de Mercurial se llame 4.67 +\texttt{default}\ndt{predeterminado}. 4.68 + 4.69 +\subsection{Especificar un estilo predeterminado} 4.70 + 4.71 +Puede modificar el estilo de presentación que Mercurial usará para 4.72 +toda orden vía el fichero \hgrc\, indicando el estilo que prefiere 4.73 +usar. 4.74 4.75 \begin{codesample2} 4.76 [ui] 4.77 style = compact 4.78 \end{codesample2} 4.79 4.80 -If you write a style of your own, you can use it by either providing 4.81 -the path to your style file, or copying your style file into a 4.82 -location where Mercurial can find it (typically the \texttt{templates} 4.83 -subdirectory of your Mercurial install directory). 4.84 - 4.85 -\section{Commands that support styles and templates} 4.86 - 4.87 -All of Mercurial's ``\texttt{log}-like'' commands let you use styles 4.88 -and templates: \hgcmd{incoming}, \hgcmd{log}, \hgcmd{outgoing}, and 4.89 -\hgcmd{tip}. 4.90 - 4.91 -As I write this manual, these are so far the only commands that 4.92 -support styles and templates. Since these are the most important 4.93 -commands that need customisable output, there has been little pressure 4.94 -from the Mercurial user community to add style and template support to 4.95 -other commands. 4.96 - 4.97 -\section{The basics of templating} 4.98 - 4.99 -At its simplest, a Mercurial template is a piece of text. Some of the 4.100 -text never changes, while other parts are \emph{expanded}, or replaced 4.101 -with new text, when necessary. 4.102 - 4.103 -Before we continue, let's look again at a simple example of 4.104 -Mercurial's normal output. 4.105 +Si escribe un estilo, puede usarlo bien sea proveyendo la ruta a su 4.106 +fichero de estilo o copiando su fichero de estilo a un lugar en el 4.107 +cual Mercurial pueda encontrarlo(típicamente el subdirectorio 4.108 +\texttt{templates} de su directorio de instalación de Mercurial). 4.109 + 4.110 +\section{Órdenes que soportan estilos y plantillas} 4.111 + 4.112 +Todas las órdenes de Mercurial``relacionadas con \texttt{log}'' le 4.113 +permiten usar estilos y plantillas: \hgcmd{incoming}, \hgcmd{log}, 4.114 +\hgcmd{outgoing} y \hgcmd{tip}. 4.115 + 4.116 +Al momento de la escritura del manual estas son las únicas órdenes que 4.117 +soportan estilos y plantillas. Dado que son las órdenes más 4.118 +importantes que necesitan personalización, no ha habido muchas 4.119 +solicitudes desde la comunidad de usuarios de Mercurial para añadir 4.120 +soporte de plantillas y estilos a otras órdenes. 4.121 + 4.122 +\section{Cuestiones básicas de plantillas} 4.123 + 4.124 +Una plantilla de Mercurial es sencillamente una pieza de texto. 4.125 +Cierta porción nunca cambia, otras partes se \emph{expanden}, o 4.126 +reemplazan con texto nuevo cuando es necesario. 4.127 + 4.128 +Antes de continuar, veamos de nuevo un ejemplo sencillo de la salida 4.129 +usual de Mercurial: 4.130 4.131 \interaction{template.simple.normal} 4.132 4.133 -Now, let's run the same command, but using a template to change its 4.134 -output. 4.135 +Ahora, ejecutemos la misma orden, pero usemos una plantilla para 4.136 +modificar su salida: 4.137 4.138 \interaction{template.simple.simplest} 4.139 4.140 -The example above illustrates the simplest possible template; it's 4.141 -just a piece of static text, printed once for each changeset. The 4.142 -\hgopt{log}{--template} option to the \hgcmd{log} command tells 4.143 -Mercurial to use the given text as the template when printing each 4.144 -changeset. 4.145 - 4.146 -Notice that the template string above ends with the text 4.147 -``\Verb+\n+''. This is an \emph{escape sequence}, telling Mercurial 4.148 -to print a newline at the end of each template item. If you omit this 4.149 -newline, Mercurial will run each piece of output together. See 4.150 -section~\ref{sec:template:escape} for more details of escape sequences. 4.151 - 4.152 -A template that prints a fixed string of text all the time isn't very 4.153 -useful; let's try something a bit more complex. 4.154 +El ejemplo anterior ilustra la plantilla más sencilla posible; es 4.155 +solamente una porción estática de código que se imprime una vez por 4.156 +cada conjunto de cambios. La opción \hgopt{log}{--template} de la 4.157 +orden \hgcmd{log} indica a Mercurial usar el texto dado como la 4.158 +plantilla cuando se imprime cada conjunto de cambios. 4.159 + 4.160 +Observe que la cadena de plantilla anterior termina con el texto 4.161 +``\Verb+\n+''. Es una \emph{secuencia de control}, que le indica a 4.162 +Mercurial imprimira una nueva línea al final de cada objeto de la 4.163 +plantilla. Si omite esta nueva línea, Mercurial colocará cada pieza 4.164 +de salida seguida. Si desea más detalles acerca de secuencias de 4.165 +control, vea la sección~\ref{sec:template:escape}. 4.166 + 4.167 +Una plantilla que imprime una cadena fija de texto siempre no es muy 4.168 +útil; intentemos algo un poco más complejo. 4.169 4.170 \interaction{template.simple.simplesub} 4.171 4.172 -As you can see, the string ``\Verb+{desc}+'' in the template has been 4.173 -replaced in the output with the description of each changeset. Every 4.174 -time Mercurial finds text enclosed in curly braces (``\texttt{\{}'' 4.175 -and ``\texttt{\}}''), it will try to replace the braces and text with 4.176 -the expansion of whatever is inside. To print a literal curly brace, 4.177 -you must escape it, as described in section~\ref{sec:template:escape}. 4.178 - 4.179 -\section{Common template keywords} 4.180 +Como puede ver, la cadena ``\Verb+{desc}+'' en la plantilla ha sido 4.181 +reemplazada en la salida con la descricipción de cada conjunto de 4.182 +cambios. Cada vez que Mercurial encuentra texto encerrado entre 4.183 +corchetes(``\texttt{\{}'' y ``\texttt{\}}''), intentará reemplazar los 4.184 +corchetes y el texto con la expansión de lo que sea está adentro. 4.185 +Para imprimir un corchete de forma literal, debe escaparlo, como se 4.186 +describe en la sección~\ref{sec:template:escape}. 4.187 + 4.188 +\section{Palabras claves más comunes en las plantillas} 4.189 \label{sec:template:keyword} 4.190 4.191 -You can start writing simple templates immediately using the keywords 4.192 -below. 4.193 - 4.194 -\begin{itemize} 4.195 -\item[\tplkword{author}] String. The unmodified author of the changeset. 4.196 -\item[\tplkword{branches}] String. The name of the branch on which 4.197 - the changeset was committed. Will be empty if the branch name was 4.198 +Puede empezar a escribir plantillas sencillas rápidamente con las 4.199 +palabras claves descritas a continuación: 4.200 + 4.201 +\begin{itemize} 4.202 +\item[\tplkword{author}] Cadena. El autor NO modificado del conjunto 4.203 + de cambios. 4.204 +\item[\tplkword{branches}] Cadena. El nombre de la rama en la cual se 4.205 + consignó el conjunto de cambios. Será vacía si el nombre de la rama es 4.206 \texttt{default}. 4.207 -\item[\tplkword{date}] Date information. The date when the changeset 4.208 - was committed. This is \emph{not} human-readable; you must pass it 4.209 - through a filter that will render it appropriately. See 4.210 - section~\ref{sec:template:filter} for more information on filters. 4.211 - The date is expressed as a pair of numbers. The first number is a 4.212 - Unix UTC timestamp (seconds since January 1, 1970); the second is 4.213 - the offset of the committer's timezone from UTC, in seconds. 4.214 -\item[\tplkword{desc}] String. The text of the changeset description. 4.215 -\item[\tplkword{files}] List of strings. All files modified, added, or 4.216 - removed by this changeset. 4.217 -\item[\tplkword{file\_adds}] List of strings. Files added by this 4.218 - changeset. 4.219 -\item[\tplkword{file\_dels}] List of strings. Files removed by this 4.220 - changeset. 4.221 -\item[\tplkword{node}] String. The changeset identification hash, as a 4.222 - 40-character hexadecimal string. 4.223 -\item[\tplkword{parents}] List of strings. The parents of the 4.224 - changeset. 4.225 -\item[\tplkword{rev}] Integer. The repository-local changeset revision 4.226 - number. 4.227 -\item[\tplkword{tags}] List of strings. Any tags associated with the 4.228 - changeset. 4.229 -\end{itemize} 4.230 - 4.231 -A few simple experiments will show us what to expect when we use these 4.232 -keywords; you can see the results in 4.233 -figure~\ref{fig:template:keywords}. 4.234 +\item[\tplkword{date}] Información de fecha. La fecha en la cual se 4.235 + consignó el conjunto de cambios. \emph{No} es legible por un 4.236 + humano, debe pasarla por un firltro que la desplegará 4.237 + apropiadamente. En la sección~\ref{sec:template:filter} hay más 4.238 + detalles acerca de filtros. La fecha se expresa como un par de 4.239 + números. El primer número corresponde a una marca de tiempo UNIX 4.240 + UTC(segundos desde el primero de enero de 1970); la segunda es el 4.241 + corrimiento horario de la zona horaria del UTC en la cual se encontraba 4.242 + quien hizo la consignación, en segundos. 4.243 +\item[\tplkword{desc}] Cadena. La descripción en texto del conjunto 4.244 + de cambios. 4.245 +\item[\tplkword{files}] Lista de cadenas. Todos los ficheros 4.246 + modificados, adicionados o eliminados por este conjunto de cambios. 4.247 +\item[\tplkword{file\_adds}] Lista de cadenas. Ficheros adicionados 4.248 + por este conjunto de cambios. 4.249 +\item[\tplkword{file\_dels}] Lista de cadenas. Ficheros eliminados 4.250 + por este conjunto de cambios. 4.251 +\item[\tplkword{node}] Cadena. El hash de identificación de este 4.252 + conjunto de cambios como una cadena hexadecimal de 40 caracteres. 4.253 +\item[\tplkword{parents}] Lista de cadenas. Los ancestros del 4.254 + conjunto de cambios. 4.255 +\item[\tplkword{rev}] Entero. El número de revisión del repositorio 4.256 + local. 4.257 +\item[\tplkword{tags}] Lista de cadenas. Todas las etiquetas 4.258 + asociadas al conjunto de cambios. 4.259 +\end{itemize} 4.260 + 4.261 +Unos experimentos sencillos nos mostrarán qué esperar cuando usamos 4.262 +estas palabras claves; puede ver los resultados en la 4.263 +figura~\ref{fig:template:keywords}. 4.264 4.265 \begin{figure} 4.266 \interaction{template.simple.keywords} 4.267 @@ -146,328 +155,341 @@ 4.268 \label{fig:template:keywords} 4.269 \end{figure} 4.270 4.271 -As we noted above, the date keyword does not produce human-readable 4.272 -output, so we must treat it specially. This involves using a 4.273 -\emph{filter}, about which more in section~\ref{sec:template:filter}. 4.274 +Como mencionamos anteriormente, la palabra clave de fecha no produce 4.275 +salida legible por un humano, debemos tratarla de forma especial. 4.276 +Esto involucra usar un \emph{filtro}, acerca de lo cual hay más en la 4.277 +sección~\ref{sec:template:filter}. 4.278 4.279 \interaction{template.simple.datekeyword} 4.280 4.281 -\section{Escape sequences} 4.282 +\section{Secuencias de Control} 4.283 \label{sec:template:escape} 4.284 4.285 -Mercurial's templating engine recognises the most commonly used escape 4.286 -sequences in strings. When it sees a backslash (``\Verb+\+'') 4.287 -character, it looks at the following character and substitutes the two 4.288 -characters with a single replacement, as described below. 4.289 +El motor de plantillas de Mercurial reconoce las secuencias de control 4.290 +más comunmente usadas dentro de las cadenas. Cuando ve un backslash 4.291 +(``\Verb+\+''), ve el caracter siguiente y sustituye los dos 4.292 +caracteres con un reemplazo sencillo, como se describe a continuación: 4.293 4.294 \begin{itemize} 4.295 \item[\Verb+\textbackslash\textbackslash+] Backslash, ``\Verb+\+'', 4.296 ASCII~134. 4.297 -\item[\Verb+\textbackslash n+] Newline, ASCII~12. 4.298 -\item[\Verb+\textbackslash r+] Carriage return, ASCII~15. 4.299 +\item[\Verb+\textbackslash n+] Nueva línea, ASCII~12. 4.300 +\item[\Verb+\textbackslash r+] Cambio de línea, ASCII~15. 4.301 \item[\Verb+\textbackslash t+] Tab, ASCII~11. 4.302 -\item[\Verb+\textbackslash v+] Vertical tab, ASCII~13. 4.303 -\item[\Verb+\textbackslash \{+] Open curly brace, ``\Verb+{+'', ASCII~173. 4.304 -\item[\Verb+\textbackslash \}+] Close curly brace, ``\Verb+}+'', ASCII~175. 4.305 -\end{itemize} 4.306 - 4.307 -As indicated above, if you want the expansion of a template to contain 4.308 -a literal ``\Verb+\+'', ``\Verb+{+'', or ``\Verb+{+'' character, you 4.309 -must escape it. 4.310 - 4.311 -\section{Filtering keywords to change their results} 4.312 +\item[\Verb+\textbackslash v+] Tab Vertical, ASCII~13. 4.313 +\item[\Verb+\textbackslash \{+] Corchete abierto, ``\Verb+{+'', ASCII~173. 4.314 +\item[\Verb+\textbackslash \}+] Corchete cerrado, ``\Verb+}+'', ASCII~175. 4.315 +\end{itemize} 4.316 + 4.317 +Como se indicó arriba, si desea que la expansión en una plantilla 4.318 +contenga un caracter literal ``\Verb+\+'', ``\Verb+{+'', o 4.319 + ``\Verb+{+'', debe escaparlo. 4.320 + 4.321 +\section{Uso de filtros con palabras claves} 4.322 \label{sec:template:filter} 4.323 4.324 -Some of the results of template expansion are not immediately easy to 4.325 -use. Mercurial lets you specify an optional chain of \emph{filters} 4.326 -to modify the result of expanding a keyword. You have already seen a 4.327 -common filter, \tplkwfilt{date}{isodate}, in action above, to make a 4.328 -date readable. 4.329 - 4.330 -Below is a list of the most commonly used filters that Mercurial 4.331 -supports. While some filters can be applied to any text, others can 4.332 -only be used in specific circumstances. The name of each filter is 4.333 -followed first by an indication of where it can be used, then a 4.334 -description of its effect. 4.335 - 4.336 -\begin{itemize} 4.337 -\item[\tplfilter{addbreaks}] Any text. Add an XHTML ``\Verb+<br/>+'' 4.338 - tag before the end of every line except the last. For example, 4.339 - ``\Verb+foo\nbar+'' becomes ``\Verb+foo<br/>\nbar+''. 4.340 -\item[\tplkwfilt{date}{age}] \tplkword{date} keyword. Render the 4.341 - age of the date, relative to the current time. Yields a string like 4.342 +Algunos de los resultados de la expansión de la plantilla no son 4.343 +fáciles de usar de inmediato. Mercurial le permite especificar una 4.344 +cadena de \emph{filtros} opcionales para modificar el resultado de 4.345 +expandir una palabra clave. Ya ha visto el filtro usual 4.346 +\tplkwfilt{date}{isodate} en acción con anterioridad para hacer 4.347 +legible la fecha. 4.348 + 4.349 +A continuación hay una lista de los filtros de Mercurial más 4.350 +comunmente usados. Ciertos filtros pueden aplicarse a cualquier 4.351 +texto, otros pueden usarse únicamente en circunstancias específicas. 4.352 +El nombre de cada filtro está seguido de la indicación de dónde puede 4.353 +ser usado y una descripción de su efecto. 4.354 + 4.355 +\begin{itemize} 4.356 +\item[\tplfilter{addbreaks}] Cualquier texto. Añade una etiqueta XHTML 4.357 + ``\Verb+<br/>+'' antes del final de cada línea excepto en la final. 4.358 + Por ejemplo, ``\Verb+foo\nbar+'' se convierte en ``\Verb+foo<br/>\nbar+''. 4.359 +\item[\tplkwfilt{date}{age}] palabra clave \tplkword{date}. Muestra 4.360 + la edad de la fecha, relativa al tiempo actual. Ofrece una cadena como 4.361 ``\Verb+10 minutes+''. 4.362 -\item[\tplfilter{basename}] Any text, but most useful for the 4.363 - \tplkword{files} keyword and its relatives. Treat the text as a 4.364 - path, and return the basename. For example, ``\Verb+foo/bar/baz+'' 4.365 - becomes ``\Verb+baz+''. 4.366 -\item[\tplkwfilt{date}{date}] \tplkword{date} keyword. Render a date 4.367 - in a similar format to the Unix \tplkword{date} command, but with 4.368 - timezone included. Yields a string like 4.369 - ``\Verb+Mon Sep 04 15:13:13 2006 -0700+''. 4.370 -\item[\tplkwfilt{author}{domain}] Any text, but most useful for the 4.371 - \tplkword{author} keyword. Finds the first string that looks like 4.372 - an email address, and extract just the domain component. For 4.373 - example, ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' becomes 4.374 +\item[\tplfilter{basename}] Cualquier texto, pero de utilidad sobre 4.375 + todo en palabras claves relativas a \tplkword{ficheros}. Trata el 4.376 + texto como una ruta, retornando el nombre base. Por ejemplo, 4.377 + ``\Verb+foo/bar/baz+'', se convierte en ``\Verb+baz+''. 4.378 +\item[\tplkwfilt{date}{date}] \tplkword{date} palabra clave. Mostrar 4.379 + la fecha en un formato similar a la orden \tplkword{date} de 4.380 + in a similar format to the Unix, pero con la zona horaria incluída. 4.381 + Una cadena como ``\Verb+Mon Sep 04 15:13:13 2006 -0700+''. 4.382 +\item[\tplkwfilt{author}{domain}] Cualquier texto, pero de mayor 4.383 + utilidad para la palabra clave \tplkword{author}. Encuentra la 4.384 + primera cadena que luce como una dirección de correo electrónico, y 4.385 + extrae solamente el componente del dominio. Por ejemplo, de 4.386 + ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' se extrae 4.387 ``\Verb+serpentine.com+''. 4.388 -\item[\tplkwfilt{author}{email}] Any text, but most useful for the 4.389 - \tplkword{author} keyword. Extract the first string that looks like 4.390 - an email address. For example, 4.391 - ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' becomes 4.392 +\item[\tplkwfilt{author}{email}] Cualquier texto, pero de mayor 4.393 + utilidad para la palabra clave \tplkword{author}. Extrae la primera 4.394 + cadena que luce como una dirección de correo. Por ejemplo, de 4.395 + ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' extrae 4.396 ``\Verb+bos@serpentine.com+''. 4.397 -\item[\tplfilter{escape}] Any text. Replace the special XML/XHTML 4.398 - characters ``\Verb+&+'', ``\Verb+<+'' and ``\Verb+>+'' with 4.399 - XML entities. 4.400 -\item[\tplfilter{fill68}] Any text. Wrap the text to fit in 68 4.401 - columns. This is useful before you pass text through the 4.402 - \tplfilter{tabindent} filter, and still want it to fit in an 4.403 - 80-column fixed-font window. 4.404 -\item[\tplfilter{fill76}] Any text. Wrap the text to fit in 76 4.405 - columns. 4.406 -\item[\tplfilter{firstline}] Any text. Yield the first line of text, 4.407 - without any trailing newlines. 4.408 -\item[\tplkwfilt{date}{hgdate}] \tplkword{date} keyword. Render the 4.409 - date as a pair of readable numbers. Yields a string like 4.410 - ``\Verb+1157407993 25200+''. 4.411 -\item[\tplkwfilt{date}{isodate}] \tplkword{date} keyword. Render the 4.412 - date as a text string in ISO~8601 format. Yields a string like 4.413 - ``\Verb+2006-09-04 15:13:13 -0700+''. 4.414 -\item[\tplfilter{obfuscate}] Any text, but most useful for the 4.415 - \tplkword{author} keyword. Yield the input text rendered as a 4.416 - sequence of XML entities. This helps to defeat some particularly 4.417 - stupid screen-scraping email harvesting spambots. 4.418 -\item[\tplkwfilt{author}{person}] Any text, but most useful for the 4.419 - \tplkword{author} keyword. Yield the text before an email address. 4.420 - For example, ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' 4.421 - becomes ``\Verb+Bryan O'Sullivan+''. 4.422 -\item[\tplkwfilt{date}{rfc822date}] \tplkword{date} keyword. Render a 4.423 - date using the same format used in email headers. Yields a string 4.424 - like ``\Verb+Mon, 04 Sep 2006 15:13:13 -0700+''. 4.425 -\item[\tplkwfilt{node}{short}] Changeset hash. Yield the short form 4.426 - of a changeset hash, i.e.~a 12-byte hexadecimal string. 4.427 -\item[\tplkwfilt{date}{shortdate}] \tplkword{date} keyword. Render 4.428 - the year, month, and day of the date. Yields a string like 4.429 +\item[\tplfilter{escape}] Cualquier texto. Reemplaza los caracteres 4.430 + especiales de XML/XHTML: ``\Verb+&+'', ``\Verb+<+'' y ``\Verb+>+'' 4.431 + con las entidades XML. 4.432 +\item[\tplfilter{fill68}] Cualquier texto. lograr que el texto ocupe 4.433 + las primeras 68 columnas. Es útil emplearlo antes de pasar el texto 4.434 + por el filtro \tplfilter{tabindent}, y queremos que aún quepa en una 4.435 + ventana de fuente fija y 80 columnas. 4.436 +\item[\tplfilter{fill76}] Cualquier texto. Lograr que el texto quepa 4.437 + en 76 columnas. 4.438 +\item[\tplfilter{firstline}] Cualquier texto. Mostrar la primera 4.439 + línea de texto sin saltos de línea. 4.440 +\item[\tplkwfilt{date}{hgdate}] \tplkword{date} palabra clave. 4.441 + Mostrar la fecha como un par de números legibles. Muestra una 4.442 + cadena como ``\Verb+1157407993 25200+''. 4.443 +\item[\tplkwfilt{date}{isodate}] \tplkword{date} palabra clave. 4.444 + Mostrar la fecha como una cadena de texto en el formato. Muestra 4.445 + una cadena como ``\Verb+2006-09-04 15:13:13 -0700+''. 4.446 +\item[\tplfilter{obfuscate}] Cualquier texto, pero de mayor utilidad 4.447 + para la palabra clave \tplkword{author}. Muestra el campo de texto 4.448 + como una secuencia de entidades XML. Esto ayuda a eliminar ciertos 4.449 + robots estúpidos de adquisición de correo. 4.450 +\item[\tplkwfilt{author}{person}] Cualquier texto, útil sobre todo 4.451 + para la palabra clave \tplkword{author}. Muestra el texto que hay 4.452 + antes de la dirección de correo electrónico. Por ejemplo, 4.453 + ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' mostraría 4.454 + ``\Verb+Bryan O'Sullivan+''. 4.455 +\item[\tplkwfilt{date}{rfc822date}] \tplkword{date} palabra clave. 4.456 + Muestra una fecha con el mismo formato que se usa en los encabezados 4.457 + de correo. Mostraría una cadena como 4.458 + ``\Verb+Mon, 04 Sep 2006 15:13:13 -0700+''. 4.459 +\item[\tplkwfilt{node}{short}] Hash del conjunto de cambios. Muestra 4.460 + la forma corta de un hash de conjunto de cambios, 4.461 + of a changeset hash, p.e.~una cadena hexadecimal de 12 bytes. 4.462 +\item[\tplkwfilt{date}{shortdate}] \tplkword{date} palabra clave. 4.463 + Mostrar año, mes y día de una fecha. Muestrauna cadena como 4.464 ``\Verb+2006-09-04+''. 4.465 -\item[\tplfilter{strip}] Any text. Strip all leading and trailing 4.466 - whitespace from the string. 4.467 -\item[\tplfilter{tabindent}] Any text. Yield the text, with every line 4.468 - except the first starting with a tab character. 4.469 -\item[\tplfilter{urlescape}] Any text. Escape all characters that are 4.470 - considered ``special'' by URL parsers. For example, \Verb+foo bar+ 4.471 - becomes \Verb+foo%20bar+. 4.472 -\item[\tplkwfilt{author}{user}] Any text, but most useful for the 4.473 - \tplkword{author} keyword. Return the ``user'' portion of an email 4.474 - address. For example, 4.475 - ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' becomes 4.476 +\item[\tplfilter{strip}] Cualquier texto. Elimina todos los espacios 4.477 + en blanco al principio y al final de la cadena. 4.478 +\item[\tplfilter{tabindent}] Cualquier texto. Muestra el texto con 4.479 + todas las líneas excepto la primera que comience con el caracter tab. 4.480 +\item[\tplfilter{urlescape}] Cualquier texto. Escapa todos los 4.481 + caracteres que se consideren como ``especiales'' por los parsers de 4.482 + URL. Por ejemplo, \Verb+foo bar+ se convierte en \Verb+foo%20bar+. 4.483 +\item[\tplkwfilt{author}{user}] Cualquier texto, útil sobre todo para 4.484 + la palabra clave \tplkword{author}. Retorna el ``usuario'' de una 4.485 + dirección de correo. Por ejemplo, 4.486 + ``\Verb+Bryan O'Sullivan <bos@serpentine.com>+'' se convierte en 4.487 ``\Verb+bos+''. 4.488 \end{itemize} 4.489 4.490 \begin{figure} 4.491 \interaction{template.simple.manyfilters} 4.492 - \caption{Template filters in action} 4.493 + \caption{Filtros de plantilla en acción} 4.494 \label{fig:template:filters} 4.495 \end{figure} 4.496 4.497 \begin{note} 4.498 - If you try to apply a filter to a piece of data that it cannot 4.499 - process, Mercurial will fail and print a Python exception. For 4.500 - example, trying to run the output of the \tplkword{desc} keyword 4.501 - into the \tplkwfilt{date}{isodate} filter is not a good idea. 4.502 + Si trata de aplicar un filtro a una porción de datos que no puede 4.503 + procesarse, Mercurial fallará e imprimirá una excepción de Python. 4.504 + Por ejemplo, el tratar de usar la salida de la palabra clave 4.505 + \tplkword{desc} con el filtro \tplkwfilt{date}{isodate} no resultará 4.506 + algo útil. 4.507 \end{note} 4.508 4.509 -\subsection{Combining filters} 4.510 - 4.511 -It is easy to combine filters to yield output in the form you would 4.512 -like. The following chain of filters tidies up a description, then 4.513 -makes sure that it fits cleanly into 68 columns, then indents it by a 4.514 -further 8~characters (at least on Unix-like systems, where a tab is 4.515 -conventionally 8~characters wide). 4.516 +\subsection{Combinar filtros} 4.517 + 4.518 +Combinar filtros es para generar una salida en la forma como usted lo 4.519 +desea es muy sencillo. La cadena de filtros siguientes arman una 4.520 +descripción, después aseguran que cabe limpiamente en 68 columnas, y 4.521 +las indenta con 8~caracteres (por lo menos en sistemas tipo Unix, en 4.522 +los que el tab por convención se extiende en 8~caracteres). 4.523 4.524 \interaction{template.simple.combine} 4.525 4.526 -Note the use of ``\Verb+\t+'' (a tab character) in the template to 4.527 -force the first line to be indented; this is necessary since 4.528 -\tplkword{tabindent} indents all lines \emph{except} the first. 4.529 - 4.530 -Keep in mind that the order of filters in a chain is significant. The 4.531 -first filter is applied to the result of the keyword; the second to 4.532 -the result of the first filter; and so on. For example, using 4.533 -\Verb+fill68|tabindent+ gives very different results from 4.534 -\Verb+tabindent|fill68+. 4.535 - 4.536 - 4.537 -\section{From templates to styles} 4.538 - 4.539 -A command line template provides a quick and simple way to format some 4.540 -output. Templates can become verbose, though, and it's useful to be 4.541 -able to give a template a name. A style file is a template with a 4.542 -name, stored in a file. 4.543 - 4.544 -More than that, using a style file unlocks the power of Mercurial's 4.545 -templating engine in ways that are not possible using the command line 4.546 -\hgopt{log}{--template} option. 4.547 - 4.548 -\subsection{The simplest of style files} 4.549 - 4.550 -Our simple style file contains just one line: 4.551 +Observe el uso de ``\Verb+\t+'' (un caracter tab) en la plantilla para 4.552 +forzar que la primera línea se indente; esto es necesario para lograr 4.553 +que la primera línea luzca indentada; es necesario debido a que 4.554 +\tplkword{tabindent} indenta todas las líneas \emph{excepto} la primera. 4.555 + 4.556 +Tenga en cuenta que el orden de los filtros importa. El primer filtro 4.557 +se aplica primero al resultado de la palabra clave; el segundo al 4.558 +resultado de la aplicación del primer filtro y así sucesivamente. Por 4.559 +ejemplo, usar \Verb+fill68|tabindent+ es muy distinto al resultado de 4.560 +usar \Verb+tabindent|fill68+. 4.561 + 4.562 + 4.563 +\section{De plantillas a estilos} 4.564 + 4.565 +Una plantilla provee una forma rápida y sencilla para dar formato a 4.566 +una salida. Las plantillas pueden volvers verbosas, y es útil poder 4.567 +darle un nombre a una plantilla. Un fichero de estilo es una 4.568 +plantilla con un nombre, almacenado en un fichero. 4.569 + 4.570 +Más aún, al usar un fichero de estilo se dispara el poder del motor de 4.571 +plantillas en un nivel imposible de alcanzar usando las opción 4.572 +\hgopt{log}{--template} desde la línea de órdenes. 4.573 + 4.574 + 4.575 +\subsection{Los ficheros de estilo más sencillos} 4.576 + 4.577 +Nuestro fichero sencillo de estilo contiene una sola línea: 4.578 4.579 \interaction{template.simple.rev} 4.580 4.581 -This tells Mercurial, ``if you're printing a changeset, use the text 4.582 -on the right as the template''. 4.583 - 4.584 -\subsection{Style file syntax} 4.585 - 4.586 -The syntax rules for a style file are simple. 4.587 - 4.588 -\begin{itemize} 4.589 -\item The file is processed one line at a time. 4.590 - 4.591 -\item Leading and trailing white space are ignored. 4.592 - 4.593 -\item Empty lines are skipped. 4.594 - 4.595 -\item If a line starts with either of the characters ``\texttt{\#}'' or 4.596 - ``\texttt{;}'', the entire line is treated as a comment, and skipped 4.597 - as if empty. 4.598 - 4.599 -\item A line starts with a keyword. This must start with an 4.600 - alphabetic character or underscore, and can subsequently contain any 4.601 - alphanumeric character or underscore. (In regexp notation, a 4.602 - keyword must match \Verb+[A-Za-z_][A-Za-z0-9_]*+.) 4.603 - 4.604 -\item The next element must be an ``\texttt{=}'' character, which can 4.605 - be preceded or followed by an arbitrary amount of white space. 4.606 - 4.607 -\item If the rest of the line starts and ends with matching quote 4.608 - characters (either single or double quote), it is treated as a 4.609 - template body. 4.610 - 4.611 -\item If the rest of the line \emph{does not} start with a quote 4.612 - character, it is treated as the name of a file; the contents of this 4.613 - file will be read and used as a template body. 4.614 -\end{itemize} 4.615 - 4.616 -\section{Style files by example} 4.617 - 4.618 -To illustrate how to write a style file, we will construct a few by 4.619 -example. Rather than provide a complete style file and walk through 4.620 -it, we'll mirror the usual process of developing a style file by 4.621 -starting with something very simple, and walking through a series of 4.622 -successively more complete examples. 4.623 - 4.624 -\subsection{Identifying mistakes in style files} 4.625 - 4.626 -If Mercurial encounters a problem in a style file you are working on, 4.627 -it prints a terse error message that, once you figure out what it 4.628 -means, is actually quite useful. 4.629 +Se le indica a Mercurial, ``si está imprimiendo un conjunto de 4.630 +cambios, use el texto de la derecha como la plantilla''. 4.631 + 4.632 +\subsection{Sintaxis de ficheros de estilo} 4.633 + 4.634 +Las reglas de sintaxis para un fichero de estilo son sencillas: 4.635 + 4.636 +\begin{itemize} 4.637 +\item El fichero se procesa línea por línea. 4.638 + 4.639 +\item Se ignoran el espacio en blanco circundante. 4.640 + 4.641 +\item Se omiten las líneas en blanco. 4.642 + 4.643 +\item Si una línea comienza con los caracteres ``\texttt{\#}'' o 4.644 + ``\texttt{;}'', la línea completa se trata como un comentario, y se 4.645 + omite como si fuera vacía. 4.646 + 4.647 +\item Una línea comienza con una palabra clave. Esta debe comenzar 4.648 + con una caracter alfabético o una raya al piso, y puede contener 4.649 + subsecuentemente cualquier caracter alfanumérico o una raya al 4.650 + piso. (En notación de expresiones regulares debe coincidir con 4.651 + \Verb+[A-Za-z_][A-Za-z0-9_]*+.) 4.652 + 4.653 +\item El próximo elemento debe ser un caracter ``\texttt{=}'', que 4.654 + puede estar precedido o seguido por una cantidad arbitraria de 4.655 + espacio. 4.656 + 4.657 +\item Si el resto de la línea comienza y termina con caracteres 4.658 + encerrados entre caracteres de comillas(bien sea sencillas o 4.659 + dobles), se trata como cuerpo de la plantilla. 4.660 + 4.661 +\item Si el resto de la línea \emph{no} comienza con una comilla, se 4.662 + trata como el nombre de un fichero; los contenidos de este fichero 4.663 + se leerán y se usarán como cuerpo de la plantilla. 4.664 +\end{itemize} 4.665 + 4.666 +\section{Ejemplos de ficheros de estilos} 4.667 + 4.668 +Para ilustrar la creación de un fichero de estilo, construiremos 4.669 +algunos ejemplos. En lugar de ofrecer un fichero completo de estilo y 4.670 +analizarlo, replicaremos el proceso usual de desarrollo de un fichero 4.671 +de estilo comenzando con algo muy sencillo, y avanzando por una serie 4.672 +de ejemplos sucesivos más completos. 4.673 + 4.674 +\subsection{Identificar equivocaciones en ficheros de estilo} 4.675 + 4.676 +Si Mercurial encuentra un problema en un fichero de estilo en el cual 4.677 +usted está trabajando, imprime un mensaje de error suscinto, cuando 4.678 +usted identifique lo que significa, resulta muy útil. 4.679 4.680 \interaction{template.svnstyle.syntax.input} 4.681 4.682 -Notice that \filename{broken.style} attempts to define a 4.683 -\texttt{changeset} keyword, but forgets to give any content for it. 4.684 -When instructed to use this style file, Mercurial promptly complains. 4.685 +Tenga en cuenta que \filename{broken.style} trata de definir la 4.686 +palabra clave \texttt{changeset}, pero omite dar un contenido para esta. 4.687 +Cuando se le indica a Mercurial que use este fichero de estilo, se 4.688 +queja inmediatamente. 4.689 4.690 \interaction{template.svnstyle.syntax.error} 4.691 4.692 -This error message looks intimidating, but it is not too hard to 4.693 -follow. 4.694 - 4.695 -\begin{itemize} 4.696 -\item The first component is simply Mercurial's way of saying ``I am 4.697 - giving up''. 4.698 +Este mensaje de error luce intimidante, pero no es muy difícil de 4.699 +seguir: 4.700 + 4.701 +\begin{itemize} 4.702 +\item El primer componente es la forma como Mercurial dice ``me rindo''. 4.703 \begin{codesample4} 4.704 \textbf{abort:} broken.style:1: parse error 4.705 \end{codesample4} 4.706 4.707 -\item Next comes the name of the style file that contains the error. 4.708 +\item A continuación viene el nombre del fichero que contiene el error. 4.709 \begin{codesample4} 4.710 abort: \textbf{broken.style}:1: parse error 4.711 \end{codesample4} 4.712 4.713 -\item Following the file name is the line number where the error was 4.714 - encountered. 4.715 +\item Siguendo el nombre del fichero viene el número de línea en la 4.716 + que se encontró el error. 4.717 \begin{codesample4} 4.718 abort: broken.style:\textbf{1}: parse error 4.719 \end{codesample4} 4.720 4.721 -\item Finally, a description of what went wrong. 4.722 +\item Finalmente, la descripción de lo que falló. 4.723 \begin{codesample4} 4.724 abort: broken.style:1: \textbf{parse error} 4.725 \end{codesample4} 4.726 - The description of the problem is not always clear (as in this 4.727 - case), but even when it is cryptic, it is almost always trivial to 4.728 - visually inspect the offending line in the style file and see what 4.729 - is wrong. 4.730 -\end{itemize} 4.731 - 4.732 -\subsection{Uniquely identifying a repository} 4.733 - 4.734 -If you would like to be able to identify a Mercurial repository 4.735 -``fairly uniquely'' using a short string as an identifier, you can 4.736 -use the first revision in the repository. 4.737 + La descripción del problema no siempre es clara(como en este caso), 4.738 + pero aunque sea críptica, casi siempre es trivial la inspección 4.739 + visual de la línea en el fichero de estilo y encontrar lo que está 4.740 + mal. 4.741 +\end{itemize} 4.742 + 4.743 +\subsection{Identificar de forma única un repositorio} 4.744 + 4.745 +Si desea identificar un repositorio de Mercurial ``de forma única'' 4.746 +con una cadena corta como identificador, puede usar la primera 4.747 +revisión en el repositorio. 4.748 \interaction{template.svnstyle.id} 4.749 -This is not guaranteed to be unique, but it is nevertheless useful in 4.750 +No es garantía de unicidad, pero no es útill en ciertos casos: 4.751 many cases. 4.752 \begin{itemize} 4.753 -\item It will not work in a completely empty repository, because such 4.754 - a repository does not have a revision~zero. 4.755 -\item Neither will it work in the (extremely rare) case where a 4.756 - repository is a merge of two or more formerly independent 4.757 - repositories, and you still have those repositories around. 4.758 -\end{itemize} 4.759 -Here are some uses to which you could put this identifier: 4.760 -\begin{itemize} 4.761 -\item As a key into a table for a database that manages repositories 4.762 - on a server. 4.763 -\item As half of a \{\emph{repository~ID}, \emph{revision~ID}\} tuple. 4.764 - Save this information away when you run an automated build or other 4.765 - activity, so that you can ``replay'' the build later if necessary. 4.766 -\end{itemize} 4.767 - 4.768 -\subsection{Mimicking Subversion's output} 4.769 - 4.770 -Let's try to emulate the default output format used by another 4.771 -revision control tool, Subversion. 4.772 +\item No funcionará en un repositorio completamente vacío, porque un 4.773 + repositorio así no tiene una revisión~zero. 4.774 +\item Tampoco funcionará en caso(muy raro) cuando el repositorio sea 4.775 + una fusión de dos repositorios independientes y tiene los dos 4.776 + directorios por ahí. 4.777 +\end{itemize} 4.778 +Hay ciertos casos en los cuales podría colocar el identificador: 4.779 +\begin{itemize} 4.780 +\item Como una llave en la tabla de una base de datos que administra 4.781 + repositorios en un servidor. 4.782 +\item Como una parte del par \{\emph{ID~repositorio}, \emph{ID~revisión}\}. 4.783 + Almacene esta información de forma independiente cuando ejecute 4.784 + construcciones automatizadas u otras actividades, de forma que pueda 4.785 + ``reconstruir'' posteriormente en caso de ser necesario. 4.786 +\end{itemize} 4.787 + 4.788 +\subsection{Mostrando salida parecida a Subversion} 4.789 + 4.790 +Intentemos emular la salida usual que usa otro sistema de control de 4.791 +revisiones, Subversion. 4.792 \interaction{template.svnstyle.short} 4.793 4.794 -Since Subversion's output style is fairly simple, it is easy to 4.795 -copy-and-paste a hunk of its output into a file, and replace the text 4.796 -produced above by Subversion with the template values we'd like to see 4.797 -expanded. 4.798 +Dado que la salida de Subversion es sencilla, es fácil copiar y pegar 4.799 +una porción de su salida en un fichero, y reemplazar el texto 4.800 +producido previamente por Subversion con valores base que quisiéramos 4.801 +ver expandidos. 4.802 \interaction{template.svnstyle.template} 4.803 4.804 -There are a few small ways in which this template deviates from the 4.805 -output produced by Subversion. 4.806 -\begin{itemize} 4.807 -\item Subversion prints a ``readable'' date (the ``\texttt{Wed, 27 Sep 4.808 - 2006}'' in the example output above) in parentheses. Mercurial's 4.809 - templating engine does not provide a way to display a date in this 4.810 - format without also printing the time and time zone. 4.811 -\item We emulate Subversion's printing of ``separator'' lines full of 4.812 - ``\texttt{-}'' characters by ending the template with such a line. 4.813 - We use the templating engine's \tplkword{header} keyword to print a 4.814 - separator line as the first line of output (see below), thus 4.815 - achieving similar output to Subversion. 4.816 -\item Subversion's output includes a count in the header of the number 4.817 - of lines in the commit message. We cannot replicate this in 4.818 - Mercurial; the templating engine does not currently provide a filter 4.819 - that counts the number of items it is passed. 4.820 -\end{itemize} 4.821 -It took me no more than a minute or two of work to replace literal 4.822 -text from an example of Subversion's output with some keywords and 4.823 -filters to give the template above. The style file simply refers to 4.824 -the template. 4.825 +Esta plantilla difiere en algunos detalles de la salida producida por 4.826 +Subversion: 4.827 +\begin{itemize} 4.828 +\item Subversion imprime una fecha ``legible'' (el ``\texttt{Wed, 27 Sep 4.829 + 2006}'' en el ejemplo de salida anterior) en paréntesis. El motor 4.830 + de plantillas de Mercurial no ofrece una forma sencilla de desplegar 4.831 + una fecha en este formato sin imprimir también la hora y la zona horaria. 4.832 +\item Emulamos las líneas de ``separación'' de subversion con caracteres 4.833 + ``\texttt{-}'' en una línea. Usamos la palabra clave 4.834 + \tplkword{header} del motor de plantillas para imprimir una línea de 4.835 + separación como la primera línea de salida(ver más abajo), para 4.836 + lograr una salida similara a la de Subversion. 4.837 +\item La salida de subversion incluye un conteo en el encabezado del 4.838 + número de líneas en el mensaje de consinación. No podemos 4.839 + replicarlo en Mercurial; el motor de plantilla no ofrece en la 4.840 + actualidad un filtro que cuente la cantidad de objetos que se le 4.841 + pasen. 4.842 +\end{itemize} 4.843 +No me tomó más de un minuto o dos de trabajo para reemplazar texto 4.844 +literal de un ejemplo de salida de la salida de Subversion con ciertas 4.845 +palabras claves y filtros para ofrecer la plantilla anterior. El 4.846 +fichero de estilo se refiere sencillamente a la plantilla. 4.847 \interaction{template.svnstyle.style} 4.848 4.849 -We could have included the text of the template file directly in the 4.850 -style file by enclosing it in quotes and replacing the newlines with 4.851 -``\verb!\n!'' sequences, but it would have made the style file too 4.852 -difficult to read. Readability is a good guide when you're trying to 4.853 -decide whether some text belongs in a style file, or in a template 4.854 -file that the style file points to. If the style file will look too 4.855 -big or cluttered if you insert a literal piece of text, drop it into a 4.856 -template instead. 4.857 +Podríamos haber incluído el texto del fichero plantilla directamente 4.858 +en el fichero de estilo encerrando entre comillas y reemplazando las 4.859 +nuevas líneas con secuencias ``\verb!\n!'', pero haría muy difícil de 4.860 +leer el archivo de estilos. La facilidad para leer es importante 4.861 +cuando está decidiendo si un texto pertenece a un fichero de estilo o 4.862 +a un fichero de plantilla incluído en el estilo. Si el fichero de 4.863 +estilo luce muy grande o complicado, si inserta una pieza de texto 4.864 +literal, mejor colóquelo en una plantilla. 4.865 4.866 %%% Local Variables: 4.867 %%% mode: latex