hgbook
changeset 448:c17848cfbf75
Translated a few more MQ paragraphs
author | Igor TAmara <igor@tamarapatino.org> |
---|---|
date | Fri Dec 12 07:45:58 2008 -0500 (2008-12-12) |
parents | 93e7700c0322 |
children | 9b3cc9f398f9 |
files | es/Leame.1st es/mq.tex |
line diff
1.1 --- a/es/Leame.1st Wed Dec 10 22:51:01 2008 -0500 1.2 +++ b/es/Leame.1st Fri Dec 12 07:45:58 2008 -0500 1.3 @@ -106,7 +106,7 @@ 1.4 || collab.tex || Igor Támara || 100% || 10/11/2008 || 06/12/2008 || 1.5 || filenames.tex || Javier Rojas || 72% || 27/11/2008 || || 1.6 || hook.tex || Javier Rojas || 26% || 01/12/2008 || || 1.7 -|| mq.tex || Igor Támara || 63% || 06/12/2008 || || 1.8 +|| mq.tex || Igor Támara || 74% || 06/12/2008 || || 1.9 || hgext.tex || Igor Támara || 0% || || || 1.10 1.11 == Archivos en proceso de revisión ==
2.1 --- a/es/mq.tex Wed Dec 10 22:51:01 2008 -0500 2.2 +++ b/es/mq.tex Fri Dec 12 07:45:58 2008 -0500 2.3 @@ -668,7 +668,7 @@ 2.4 parches. Los apliqué sobre un repositorio del núcleo de Linux con 2.5 todas las 27.472 revisiones entre 2.6.12-rc2 y 2.6.17. 2.6 2.7 -En mi viejo y lento portátil, logré aplicar 2.8 +En mi portátil antiguo y lento, logré aplicar 2.9 \hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-a}} a los 1.738 parches en 3.5 2.10 minutos, y \hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a}} en 30 segundos. 2.11 (En un portátil más nuevo, el tiempo para introducir todos los 2.12 @@ -700,100 +700,104 @@ 2.13 esto significa que el primer parche es cero, el segundo es uno y así 2.14 sucesivamente. 2.15 2.16 -\section{Updating your patches when the underlying code changes} 2.17 +\section{Actualiar los parches cuando el código cambia} 2.18 \label{sec:mq:merge} 2.19 2.20 -It's common to have a stack of patches on top of an underlying 2.21 -repository that you don't modify directly. If you're working on 2.22 -changes to third-party code, or on a feature that is taking longer to 2.23 -develop than the rate of change of the code beneath, you will often 2.24 -need to sync up with the underlying code, and fix up any hunks in your 2.25 -patches that no longer apply. This is called \emph{rebasing} your 2.26 -patch series. 2.27 - 2.28 -The simplest way to do this is to \hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a}} 2.29 -your patches, then \hgcmd{pull} changes into the underlying 2.30 -repository, and finally \hgcmdargs{qpush}{\hgxopt{mq}{qpop}{-a}} your 2.31 -patches again. MQ will stop pushing any time it runs across a patch 2.32 -that fails to apply during conflicts, allowing you to fix your 2.33 -conflicts, \hgxcmd{mq}{qrefresh} the affected patch, and continue pushing 2.34 -until you have fixed your entire stack. 2.35 - 2.36 -This approach is easy to use and works well if you don't expect 2.37 -changes to the underlying code to affect how well your patches apply. 2.38 -If your patch stack touches code that is modified frequently or 2.39 -invasively in the underlying repository, however, fixing up rejected 2.40 -hunks by hand quickly becomes tiresome. 2.41 - 2.42 -It's possible to partially automate the rebasing process. If your 2.43 -patches apply cleanly against some revision of the underlying repo, MQ 2.44 -can use this information to help you to resolve conflicts between your 2.45 -patches and a different revision. 2.46 - 2.47 -The process is a little involved. 2.48 +Es común contar con una pila de parches sobre un repositorio que usted 2.49 +no modifica directamente. Si está trabajando en cambios de código de 2.50 +otros, o en una característica que tarda bastante en desarrollarse 2.51 +comparada con la tasa de cambio del código sobre la cual se está 2.52 +trabajando, necesitará sincronizarse con el código, y ajustar 2.53 +cualquier trozo en sus parches que ya no estén al día. A esto se le 2.54 +llama hacer \emph{rebase} a su serie de parches. 2.55 + 2.56 +La vía más sencilla de hacerlo es con \hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a}} 2.57 +sobre sus parches, después hacer \hgcmd{pull} de los cambios en el 2.58 +repositorio, y finalmente hacer 2.59 +\hgcmdargs{qpush}{\hgxopt{mq}{qpop}{-a}} con sus parches de nuevo. MQ 2.60 +dejará de de introducir parches siempre que llegue a un parche que no se pueda 2.61 +aplicar debido a un conflicto, permitiéndole a usted arreglarlo, 2.62 +aplicar \hgxcmd{mq}{qrefresh} al parche afectado y continuar 2.63 +introduciendo hasta que haya arreglado la pila completa. 2.64 + 2.65 +Esta aproximación es sencilla y funciona bien si no espera cambios en 2.66 +el código original que afecte en gran medida los parches que usted 2.67 +esté aplicando. Si su pila de parches toca código que es modificado 2.68 +frecuentemente o de forma invasiva sobre el código subyacente, 2.69 +arreglar trozos manualmente se vuelve desgastante. 2.70 + 2.71 +Es posible automatizar de forma parcial el proceso de rebase. Si sus 2.72 +parches se aplican limpiamente sobre algunas revisiones del 2.73 +repositorio subyacente, MQ puede usar esta información para ayudarle a 2.74 +a resolver conflictos entre sus parches y una revisión distinta. 2.75 + 2.76 +El proceso resulta un poco complejo: 2.77 \begin{enumerate} 2.78 -\item To begin, \hgcmdargs{qpush}{-a} all of your patches on top of 2.79 - the revision where you know that they apply cleanly. 2.80 -\item Save a backup copy of your patch directory using 2.81 - \hgcmdargs{qsave}{\hgxopt{mq}{qsave}{-e} \hgxopt{mq}{qsave}{-c}}. This prints 2.82 - the name of the directory that it has saved the patches in. It will 2.83 - save the patches to a directory called 2.84 - \sdirname{.hg/patches.\emph{N}}, where \texttt{\emph{N}} is a small 2.85 - integer. It also commits a ``save changeset'' on top of your 2.86 - applied patches; this is for internal book-keeping, and records the 2.87 - states of the \sfilename{series} and \sfilename{status} files. 2.88 -\item Use \hgcmd{pull} to bring new changes into the underlying 2.89 - repository. (Don't run \hgcmdargs{pull}{-u}; see below for why.) 2.90 -\item Update to the new tip revision, using 2.91 - \hgcmdargs{update}{\hgopt{update}{-C}} to override the patches you 2.92 - have pushed. 2.93 -\item Merge all patches using \hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-m} 2.94 - \hgxopt{mq}{qpush}{-a}}. The \hgxopt{mq}{qpush}{-m} option to \hgxcmd{mq}{qpush} 2.95 - tells MQ to perform a three-way merge if the patch fails to apply. 2.96 +\item Para comenzar, haga \hgcmdargs{qpush}{-a} sobre todos los 2.97 + parches que usted sepa se aplican limpiamente. 2.98 +\item Guarde una copia de seguridad de su directorio de parches con 2.99 + \hgcmdargs{qsave}{\hgxopt{mq}{qsave}{-e} \hgxopt{mq}{qsave}{-c}}. 2.100 + Esto imprime el nombre del directorio en el cual se han guardado los 2.101 + parches. Guardará los parches en un directorio llamado 2.102 + \sdirname{.hg/patches.\emph{N}}, donde \texttt{\emph{N}} es un 2.103 + entero pequeño. También consigna un ``conjunto de cambios de 2.104 + seguridad'' sobre sus parches aplicados; esto es para mantener el 2.105 + histórico, y guarda los estados de los ficheros \sfilename{series} 2.106 + y \sfilename{status}. 2.107 +\item Use \hgcmd{pull} para traer los nuevos cambios en el repositorio 2.108 + subyacente. (No ejecute \hgcmdargs{pull}{-u}; vea más adelante por qué.) 2.109 +\item Actualice a la nueva revisión punta con 2.110 + \hgcmdargs{update}{\hgopt{update}{-C}} para sobreescribir los 2.111 + parches que haya introducido. 2.112 +\item Fusione todos los parches con \hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-m} 2.113 + \hgxopt{mq}{qpush}{-a}}. La opción \hgxopt{mq}{qpush}{-m} de \hgxcmd{mq}{qpush} 2.114 + le indica a MQ que haga una fusión que involucra tres fuentes si el 2.115 + parche falla al aplicarse. 2.116 \end{enumerate} 2.117 2.118 -During the \hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-m}}, each patch in the 2.119 -\sfilename{series} file is applied normally. If a patch applies with 2.120 -fuzz or rejects, MQ looks at the queue you \hgxcmd{mq}{qsave}d, and 2.121 -performs a three-way merge with the corresponding changeset. This 2.122 -merge uses Mercurial's normal merge machinery, so it may pop up a GUI 2.123 -merge tool to help you to resolve problems. 2.124 - 2.125 -When you finish resolving the effects of a patch, MQ refreshes your 2.126 -patch based on the result of the merge. 2.127 - 2.128 -At the end of this process, your repository will have one extra head 2.129 -from the old patch queue, and a copy of the old patch queue will be in 2.130 -\sdirname{.hg/patches.\emph{N}}. You can remove the extra head using 2.131 -\hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a} \hgxopt{mq}{qpop}{-n} patches.\emph{N}} 2.132 -or \hgcmd{strip}. You can delete \sdirname{.hg/patches.\emph{N}} once 2.133 -you are sure that you no longer need it as a backup. 2.134 - 2.135 -\section{Identifying patches} 2.136 - 2.137 -MQ commands that work with patches let you refer to a patch either by 2.138 -using its name or by a number. By name is obvious enough; pass the 2.139 -name \filename{foo.patch} to \hgxcmd{mq}{qpush}, for example, and it will 2.140 -push patches until \filename{foo.patch} is applied. 2.141 - 2.142 -As a shortcut, you can refer to a patch using both a name and a 2.143 -numeric offset; \texttt{foo.patch-2} means ``two patches before 2.144 -\texttt{foo.patch}'', while \texttt{bar.patch+4} means ``four patches 2.145 -after \texttt{bar.patch}''. 2.146 - 2.147 -Referring to a patch by index isn't much different. The first patch 2.148 -printed in the output of \hgxcmd{mq}{qseries} is patch zero (yes, it's one 2.149 -of those start-at-zero counting systems); the second is patch one; and 2.150 -so on. 2.151 - 2.152 -MQ also makes it easy to work with patches when you are using normal 2.153 -Mercurial commands. Every command that accepts a changeset ID will 2.154 -also accept the name of an applied patch. MQ augments the tags 2.155 -normally in the repository with an eponymous one for each applied 2.156 -patch. In addition, the special tags \index{tags!special tag 2.157 - names!\texttt{qbase}}\texttt{qbase} and \index{tags!special tag 2.158 - names!\texttt{qtip}}\texttt{qtip} identify the ``bottom-most'' and 2.159 -topmost applied patches, respectively. 2.160 +Durante el \hgcmdargs{qpush}{\hgxopt{mq}{qpush}{-m}}, cada parche en 2.161 +el fichero \sfilename{series} se aplica normalmente. Si un parche se 2.162 +aplica difusamente o se niea a aplicarse, MQ consulta la cola que 2.163 +usted guardó con \hgxcmd{mq}{qsave}, y aplica una fusión de tres con 2.164 +el correspondiente conjunto de cambios. Esta fusión usa la maquinaria 2.165 +de Mercurial, por lo tanto puede mostrar una herramienta de fusión GUI 2.166 +para ayudarle a resolver los problemas. 2.167 + 2.168 +Cuando termine de resolver los efectos de un parche, MQ refrescará su 2.169 +parche basado en el resultado de la fusión. 2.170 + 2.171 +Al final de este proceso, su repositorio tendrá una cabeza extra de la 2.172 +antigua cola de parches, y una copia de la cola de parches anterio 2.173 +estará en \sdirname{.hg/patches.\emph{N}}. Puede eliminar la cabeza 2.174 +extra con \hgcmdargs{qpop}{\hgxopt{mq}{qpop}{-a} \hgxopt{mq}{qpop}{-n} patches.\emph{N}} 2.175 +o \hgcmd{strip}. Puede eliminar \sdirname{.hg/patches.\emph{N}} una 2.176 +vez que esté seguro de que no lo necesita más como copia de seguridad. 2.177 + 2.178 +\section{Identificar parches} 2.179 + 2.180 +Las órdenes de MQ le permiten trabajar refiriéndose al nombre del 2.181 +parche o al número. Es obvio hacerlo por el nombre; por ejemplo se 2.182 +pasa el nombre \filename{foo.patch} a \hgxcmd{mq}{qpush}, que 2.183 +introducirá los parches hasta que \filename{foo.patch} se aplique. 2.184 + 2.185 +Para hacerlo más corto, puede referirse a un parche con un nombre y un 2.186 +corrimiento de número; por ejemplo, \texttt{foo.patch-2} significa 2.187 +``dos parches antes de \texttt{foo.patch}'', mientras que 2.188 +\texttt{bar.patch+4} significa ``cuatro parches después de \texttt{bar.patch}''. 2.189 + 2.190 +Referirse a un parche por su índice no es muy diferente. El primer 2.191 +parche que se imprime en la salida de \hgxcmd{mq}{qseries} es el 2.192 +parche cero(si, es el primero en los sistemas que comienzan su conteo 2.193 +en cero); el segundo parche es uno y así sucesivamente. 2.194 + 2.195 +MQ facilita el trabajo cuando está usando órdenes normales de 2.196 +Mercurial. Cada comando que acepte Identificadores de conjuntos de 2.197 +cambios también aceptará el nombre de un parche aplicado. MQ aumenta 2.198 +los tags normalmente en el repositorio con un distintivo para cada 2.199 +parche aplicado. Adicionalmente, los tags especiales \index{tags!special tag 2.200 + names!\texttt{qbase}}\texttt{qbase} y \index{tags!special tag 2.201 + names!\texttt{qtip}}\texttt{qtip} identifican los parches 2.202 +``primero'' y último, respectivamente. 2.203 2.204 These additions to Mercurial's normal tagging capabilities make 2.205 dealing with patches even more of a breeze.