hgbook

annotate es/mq-ref.tex @ 495:dfa2890d9b30

translated most of section 13.8
author Javier Rojas <jerojasro@devnull.li>
date Wed Jan 07 23:38:40 2009 -0500 (2009-01-07)
parents f8614aad2cbb
children 26fb9b724588
rev   line source
igor@487 1 \chapter{Referencia de las Colas de Mercurial}
jerojasro@336 2 \label{chap:mqref}
jerojasro@336 3
igor@487 4 \section{Referencia de órdenes MQ}
jerojasro@336 5 \label{sec:mqref:cmdref}
jerojasro@336 6
igor@487 7 Si desea dar un vistazo a las órdenes que ofrece MQ, use la orden
jerojasro@336 8 \hgcmdargs{help}{mq}.
jerojasro@336 9
igor@487 10 \subsection{\hgxcmd{mq}{qapplied}---imprimir los parches aplicados}
igor@487 11
igor@487 12 La orden \hgxcmd{mq}{qapplied} imprime la pila actual de parches
igor@487 13 aplicados. Los parches se imprimen en orden de antigüedad, primero
igor@487 14 los más antiguos y después los más recientes, por lo tanto el último
igor@487 15 parche de la lista es el que está en el ``tope''.
igor@487 16
igor@487 17 \subsection{\hgxcmd{mq}{qcommit}---consignar cambios en la cola del repositorio}
igor@487 18
igor@487 19 La orden \hgxcmd{mq}{qcommit} consigna cualquier cambio sobresaliente
igor@487 20 en el repositorio \sdirname{.hg/patches}. Esta orden solamente
igor@487 21 funciona si el directorio \sdirname{.hg/patches} es un repositorio,
igor@487 22 p.e.~usted creó el directorio con
igor@487 23 \hgcmdargs{qinit}{\hgxopt{mq}{qinit}{-c}} o ejecutó
igor@487 24 \hgcmd{init} en el directorio después de correr \hgxcmd{mq}{qinit}.
igor@487 25
igor@487 26 Esta orden es un atajo para \hgcmdargs{commit}{--cwd .hg/patches}.
igor@487 27
igor@488 28 \subsection{\hgxcmd{mq}{qdelete}---eliminar un parche del fichero
igor@487 29 \sfilename{series}}
igor@487 30
igor@487 31 La orden \hgxcmd{mq}{qdelete} elimina la entrada del fichero
igor@487 32 \sfilename{series} para el parche en el directorio
igor@487 33 \sdirname{.hg/patches}. No sca el parche si ha sido aplicado. De
igor@487 34 forma predeterminada no borra el fichero del parche; use la opción
igor@487 35 \hgxopt{mq}{qdel}{-f} para hacerlo.
igor@487 36
igor@487 37 Opciones:
igor@487 38 \begin{itemize}
igor@487 39 \item[\hgxopt{mq}{qdel}{-f}] Elimina el fichero del parche.
igor@487 40 \end{itemize}
igor@487 41
igor@487 42 \subsection{\hgxcmd{mq}{qdiff}---imprimir la diferencia del último
igor@487 43 parche aplicado}
igor@487 44
igor@487 45 La orden \hgxcmd{mq}{qdiff} imprime un diff del parche más
igor@487 46 recientemente aplicado. Es equivalente a \hgcmdargs{diff}{-r-2:-1}.
igor@487 47
igor@488 48 \subsection{\hgxcmd{mq}{qfold}---fusionar (``integrar'') varios parches en
igor@487 49 uno solo}
igor@487 50
igor@487 51 La orden \hgxcmd{mq}{qfold} fusiona muchos parches en el último parche
igor@487 52 aplicado, de tal forma que el último parche aplicado es la unión de
igor@487 53 todos los cambios de los parches en cuestión.
igor@487 54
igor@487 55 Los parches a fusionar no deben haber sido aplicados;
igor@487 56 \hgxcmd{mq}{qfold} saldrá indicando un error si alguno ha sido
igor@487 57 aplicado. El orden en el cual los parches se pliegan es
igor@487 58 significativo; \hgcmdargs{qfold}{a b} significa ``aplique el parche
igor@487 59 más reciente, seguido de \texttt{a}, y seguido de \texttt{b}''.
igor@487 60
igor@488 61 Los comentarios de los parches integrados se colocan al final de los
igor@487 62 comentarios del parche destino, con cada bloque de comentarios
igor@487 63 separado con tres asteriscos(``\texttt{*}''). Se usa la opción
igor@487 64 \hgxopt{mq}{qfold}{-e} para editar el mensaje de consignación para el
igor@487 65 conjunto de cambios/parches después de completarse el pliegue.
igor@487 66
igor@487 67 Opciones:
igor@487 68 \begin{itemize}
igor@487 69 \item[\hgxopt{mq}{qfold}{-e}] Edita el mensaje de consignación y la
igor@488 70 descripción del parche del parche que se ha integrado.
igor@487 71 \item[\hgxopt{mq}{qfold}{-l}] Usa los contenidos del fichero dado como
igor@487 72 el nuevo mensaje de consignación y descripción del parche para el
igor@488 73 parche a integrar.
igor@487 74 \item[\hgxopt{mq}{qfold}{-m}] Usa el texto dado como el mensaje de
igor@488 75 consignación y descripción del parche para el parche integrado.
igor@488 76 \end{itemize}
igor@488 77
igor@488 78 \subsection{\hgxcmd{mq}{qheader}---desplegar el encabezado/descripción
igor@488 79 de un parche}
igor@488 80
igor@488 81 La orden \hgxcmd{mq}{qheader} imprime el encabezado o descripción de
igor@488 82 un parche. De forma predeterminada, imprime el encabezado del último
igor@488 83 parche aplicado. Si se da un argumento, imprime el encabezado del
igor@488 84 parche referenciado.
igor@488 85
igor@488 86 \subsection{\hgxcmd{mq}{qimport}---importar el parche de un tercero en
igor@488 87 la cola}
igor@488 88
igor@488 89 La orden \hgxcmd{mq}{qimport} añade una entrada de un parche externo
igor@488 90 al fichero \sfilename{series} y copia el parche en el directorio
igor@488 91 \sdirname{.hg/patches}. Añade la entrada inmediatamente después del
igor@488 92 último parche aplicado, pero no introduce el parche.
igor@488 93
igor@488 94 Si el directorio \sdirname{.hg/patches} es un repositorio,
igor@488 95 \hgxcmd{mq}{qimport} automáticamente hace un \hgcmd{add} del parche
igor@488 96 importado.
igor@488 97
igor@488 98 \subsection{\hgxcmd{mq}{qinit}---preparar un repositorio para trabajar
igor@488 99 con MQ}
igor@488 100
igor@488 101 La orden \hgxcmd{mq}{qinit} prepara un repositorio para trabajar con
igor@488 102 MQ. Crea un directorio llamado \sdirname{.hg/patches}.
igor@488 103
igor@488 104 Opciones:
igor@488 105 \begin{itemize}
igor@488 106 \item[\hgxopt{mq}{qinit}{-c}] Crea \sdirname{.hg/patches} como un
igor@488 107 repositorio por sí mismo. También crea un fichero
igor@488 108 \sfilename{.hgignore} que ignorará el fichero \sfilename{status}.
igor@488 109 \end{itemize}
igor@488 110
igor@488 111 Cuando el directorio \sdirname{.hg/patches} es un repositorio, las órdenes
igor@488 112 \hgxcmd{mq}{qimport} y \hgxcmd{mq}{qnew} hacen \hgcmd{add}
igor@488 113 automáticamente a los parches nuevos.
igor@488 114
igor@488 115 \subsection{\hgxcmd{mq}{qnew}---crear un parche nuevo}
igor@488 116
igor@488 117 La orden \hgxcmd{mq}{qnew} crea un parche nuevo. Exige un argumento,
igor@488 118 el nombre que se usará para tal parche. El parche recién creado está
igor@488 119 vacío inicialmente. Se añade al fichero \sfilename{series} después
igor@488 120 del último parche aplicado, y se introduce en el tope de ese parche.
igor@488 121
igor@488 122 Si \hgxcmd{mq}{qnew} encuentra ficheros modificados en el directorio
igor@488 123 de trabajo, rehusará crear un parche nuevo a meos que se emplee
igor@488 124 \hgxopt{mq}{qnew}{-f} la opción(ver más adelante). Este
igor@488 125 comportamiento le permite hacer \hgxcmd{mq}{qrefresh} al último parche
igor@488 126 aplicado antes de aplicar un parche nuevo encima de este.
igor@488 127
igor@488 128 Opciones:
igor@488 129 \begin{itemize}
igor@488 130 \item[\hgxopt{mq}{qnew}{-f}] Crea un parche nuevo si los contenidos
igor@488 131 del directorio actual han sido modificados. Cualquier modificación
igor@488 132 significativa se añade al parche recientemente creado, de tal forma
igor@488 133 que al finalizar la orden, el directorio de trabajo no lucirá
igor@488 134 modificado.
igor@488 135 \item[\hgxopt{mq}{qnew}{-m}] Usa el texto dado como el mensaje de
igor@488 136 consignación. Este texto se almacenará al principio del fichero del
igor@488 137 parche, antes de los datos del parche.
jerojasro@336 138 \end{itemize}
jerojasro@336 139
jerojasro@336 140 \subsection{\hgxcmd{mq}{qnext}---print the name of the next patch}
jerojasro@336 141
jerojasro@336 142 The \hgxcmd{mq}{qnext} command prints the name name of the next patch in
jerojasro@336 143 the \sfilename{series} file after the topmost applied patch. This
jerojasro@336 144 patch will become the topmost applied patch if you run \hgxcmd{mq}{qpush}.
jerojasro@336 145
jerojasro@336 146 \subsection{\hgxcmd{mq}{qpop}---pop patches off the stack}
jerojasro@336 147
jerojasro@336 148 The \hgxcmd{mq}{qpop} command removes applied patches from the top of the
jerojasro@336 149 stack of applied patches. By default, it removes only one patch.
jerojasro@336 150
jerojasro@336 151 This command removes the changesets that represent the popped patches
jerojasro@336 152 from the repository, and updates the working directory to undo the
jerojasro@336 153 effects of the patches.
jerojasro@336 154
jerojasro@336 155 This command takes an optional argument, which it uses as the name or
jerojasro@336 156 index of the patch to pop to. If given a name, it will pop patches
jerojasro@336 157 until the named patch is the topmost applied patch. If given a
jerojasro@336 158 number, \hgxcmd{mq}{qpop} treats the number as an index into the entries in
jerojasro@336 159 the series file, counting from zero (empty lines and lines containing
jerojasro@336 160 only comments do not count). It pops patches until the patch
jerojasro@336 161 identified by the given index is the topmost applied patch.
jerojasro@336 162
jerojasro@336 163 The \hgxcmd{mq}{qpop} command does not read or write patches or the
jerojasro@336 164 \sfilename{series} file. It is thus safe to \hgxcmd{mq}{qpop} a patch that
jerojasro@336 165 you have removed from the \sfilename{series} file, or a patch that you
jerojasro@336 166 have renamed or deleted entirely. In the latter two cases, use the
jerojasro@336 167 name of the patch as it was when you applied it.
jerojasro@336 168
jerojasro@336 169 By default, the \hgxcmd{mq}{qpop} command will not pop any patches if the
jerojasro@336 170 working directory has been modified. You can override this behaviour
jerojasro@336 171 using the \hgxopt{mq}{qpop}{-f} option, which reverts all modifications in
jerojasro@336 172 the working directory.
jerojasro@336 173
jerojasro@336 174 Options:
jerojasro@336 175 \begin{itemize}
jerojasro@336 176 \item[\hgxopt{mq}{qpop}{-a}] Pop all applied patches. This returns the
jerojasro@336 177 repository to its state before you applied any patches.
jerojasro@336 178 \item[\hgxopt{mq}{qpop}{-f}] Forcibly revert any modifications to the
jerojasro@336 179 working directory when popping.
jerojasro@336 180 \item[\hgxopt{mq}{qpop}{-n}] Pop a patch from the named queue.
jerojasro@336 181 \end{itemize}
jerojasro@336 182
jerojasro@336 183 The \hgxcmd{mq}{qpop} command removes one line from the end of the
jerojasro@336 184 \sfilename{status} file for each patch that it pops.
jerojasro@336 185
jerojasro@336 186 \subsection{\hgxcmd{mq}{qprev}---print the name of the previous patch}
jerojasro@336 187
jerojasro@336 188 The \hgxcmd{mq}{qprev} command prints the name of the patch in the
jerojasro@336 189 \sfilename{series} file that comes before the topmost applied patch.
jerojasro@336 190 This will become the topmost applied patch if you run \hgxcmd{mq}{qpop}.
jerojasro@336 191
jerojasro@336 192 \subsection{\hgxcmd{mq}{qpush}---push patches onto the stack}
jerojasro@336 193 \label{sec:mqref:cmd:qpush}
jerojasro@336 194
jerojasro@336 195 The \hgxcmd{mq}{qpush} command adds patches onto the applied stack. By
jerojasro@336 196 default, it adds only one patch.
jerojasro@336 197
jerojasro@336 198 This command creates a new changeset to represent each applied patch,
jerojasro@336 199 and updates the working directory to apply the effects of the patches.
jerojasro@336 200
jerojasro@336 201 The default data used when creating a changeset are as follows:
jerojasro@336 202 \begin{itemize}
jerojasro@336 203 \item The commit date and time zone are the current date and time
jerojasro@336 204 zone. Because these data are used to compute the identity of a
jerojasro@336 205 changeset, this means that if you \hgxcmd{mq}{qpop} a patch and
jerojasro@336 206 \hgxcmd{mq}{qpush} it again, the changeset that you push will have a
jerojasro@336 207 different identity than the changeset you popped.
jerojasro@336 208 \item The author is the same as the default used by the \hgcmd{commit}
jerojasro@336 209 command.
jerojasro@336 210 \item The commit message is any text from the patch file that comes
jerojasro@336 211 before the first diff header. If there is no such text, a default
jerojasro@336 212 commit message is used that identifies the name of the patch.
jerojasro@336 213 \end{itemize}
jerojasro@336 214 If a patch contains a Mercurial patch header (XXX add link), the
jerojasro@336 215 information in the patch header overrides these defaults.
jerojasro@336 216
jerojasro@336 217 Options:
jerojasro@336 218 \begin{itemize}
jerojasro@336 219 \item[\hgxopt{mq}{qpush}{-a}] Push all unapplied patches from the
jerojasro@336 220 \sfilename{series} file until there are none left to push.
jerojasro@336 221 \item[\hgxopt{mq}{qpush}{-l}] Add the name of the patch to the end
jerojasro@336 222 of the commit message.
jerojasro@336 223 \item[\hgxopt{mq}{qpush}{-m}] If a patch fails to apply cleanly, use the
jerojasro@336 224 entry for the patch in another saved queue to compute the parameters
jerojasro@336 225 for a three-way merge, and perform a three-way merge using the
jerojasro@336 226 normal Mercurial merge machinery. Use the resolution of the merge
jerojasro@336 227 as the new patch content.
jerojasro@336 228 \item[\hgxopt{mq}{qpush}{-n}] Use the named queue if merging while pushing.
jerojasro@336 229 \end{itemize}
jerojasro@336 230
jerojasro@336 231 The \hgxcmd{mq}{qpush} command reads, but does not modify, the
jerojasro@336 232 \sfilename{series} file. It appends one line to the \hgcmd{status}
jerojasro@336 233 file for each patch that it pushes.
jerojasro@336 234
jerojasro@336 235 \subsection{\hgxcmd{mq}{qrefresh}---update the topmost applied patch}
jerojasro@336 236
jerojasro@336 237 The \hgxcmd{mq}{qrefresh} command updates the topmost applied patch. It
jerojasro@336 238 modifies the patch, removes the old changeset that represented the
jerojasro@336 239 patch, and creates a new changeset to represent the modified patch.
jerojasro@336 240
jerojasro@336 241 The \hgxcmd{mq}{qrefresh} command looks for the following modifications:
jerojasro@336 242 \begin{itemize}
jerojasro@336 243 \item Changes to the commit message, i.e.~the text before the first
jerojasro@336 244 diff header in the patch file, are reflected in the new changeset
jerojasro@336 245 that represents the patch.
jerojasro@336 246 \item Modifications to tracked files in the working directory are
jerojasro@336 247 added to the patch.
jerojasro@336 248 \item Changes to the files tracked using \hgcmd{add}, \hgcmd{copy},
jerojasro@336 249 \hgcmd{remove}, or \hgcmd{rename}. Added files and copy and rename
jerojasro@336 250 destinations are added to the patch, while removed files and rename
jerojasro@336 251 sources are removed.
jerojasro@336 252 \end{itemize}
jerojasro@336 253
jerojasro@336 254 Even if \hgxcmd{mq}{qrefresh} detects no changes, it still recreates the
jerojasro@336 255 changeset that represents the patch. This causes the identity of the
jerojasro@336 256 changeset to differ from the previous changeset that identified the
jerojasro@336 257 patch.
jerojasro@336 258
jerojasro@336 259 Options:
jerojasro@336 260 \begin{itemize}
jerojasro@336 261 \item[\hgxopt{mq}{qrefresh}{-e}] Modify the commit and patch description,
jerojasro@336 262 using the preferred text editor.
jerojasro@336 263 \item[\hgxopt{mq}{qrefresh}{-m}] Modify the commit message and patch
jerojasro@336 264 description, using the given text.
jerojasro@336 265 \item[\hgxopt{mq}{qrefresh}{-l}] Modify the commit message and patch
jerojasro@336 266 description, using text from the given file.
jerojasro@336 267 \end{itemize}
jerojasro@336 268
jerojasro@336 269 \subsection{\hgxcmd{mq}{qrename}---rename a patch}
jerojasro@336 270
jerojasro@336 271 The \hgxcmd{mq}{qrename} command renames a patch, and changes the entry for
jerojasro@336 272 the patch in the \sfilename{series} file.
jerojasro@336 273
jerojasro@336 274 With a single argument, \hgxcmd{mq}{qrename} renames the topmost applied
jerojasro@336 275 patch. With two arguments, it renames its first argument to its
jerojasro@336 276 second.
jerojasro@336 277
jerojasro@336 278 \subsection{\hgxcmd{mq}{qrestore}---restore saved queue state}
jerojasro@336 279
jerojasro@336 280 XXX No idea what this does.
jerojasro@336 281
jerojasro@336 282 \subsection{\hgxcmd{mq}{qsave}---save current queue state}
jerojasro@336 283
jerojasro@336 284 XXX Likewise.
jerojasro@336 285
jerojasro@336 286 \subsection{\hgxcmd{mq}{qseries}---print the entire patch series}
jerojasro@336 287
jerojasro@336 288 The \hgxcmd{mq}{qseries} command prints the entire patch series from the
jerojasro@336 289 \sfilename{series} file. It prints only patch names, not empty lines
jerojasro@336 290 or comments. It prints in order from first to be applied to last.
jerojasro@336 291
jerojasro@336 292 \subsection{\hgxcmd{mq}{qtop}---print the name of the current patch}
jerojasro@336 293
jerojasro@336 294 The \hgxcmd{mq}{qtop} prints the name of the topmost currently applied
jerojasro@336 295 patch.
jerojasro@336 296
jerojasro@336 297 \subsection{\hgxcmd{mq}{qunapplied}---print patches not yet applied}
jerojasro@336 298
jerojasro@336 299 The \hgxcmd{mq}{qunapplied} command prints the names of patches from the
jerojasro@336 300 \sfilename{series} file that are not yet applied. It prints them in
jerojasro@336 301 order from the next patch that will be pushed to the last.
jerojasro@336 302
jerojasro@336 303 \subsection{\hgcmd{strip}---remove a revision and descendants}
jerojasro@336 304
jerojasro@336 305 The \hgcmd{strip} command removes a revision, and all of its
jerojasro@336 306 descendants, from the repository. It undoes the effects of the
jerojasro@336 307 removed revisions from the repository, and updates the working
jerojasro@336 308 directory to the first parent of the removed revision.
jerojasro@336 309
jerojasro@336 310 The \hgcmd{strip} command saves a backup of the removed changesets in
jerojasro@336 311 a bundle, so that they can be reapplied if removed in error.
jerojasro@336 312
jerojasro@336 313 Options:
jerojasro@336 314 \begin{itemize}
jerojasro@336 315 \item[\hgopt{strip}{-b}] Save unrelated changesets that are intermixed
jerojasro@336 316 with the stripped changesets in the backup bundle.
jerojasro@336 317 \item[\hgopt{strip}{-f}] If a branch has multiple heads, remove all
jerojasro@336 318 heads. XXX This should be renamed, and use \texttt{-f} to strip revs
jerojasro@336 319 when there are pending changes.
jerojasro@336 320 \item[\hgopt{strip}{-n}] Do not save a backup bundle.
jerojasro@336 321 \end{itemize}
jerojasro@336 322
jerojasro@336 323 \section{MQ file reference}
jerojasro@336 324
jerojasro@336 325 \subsection{The \sfilename{series} file}
jerojasro@336 326
jerojasro@336 327 The \sfilename{series} file contains a list of the names of all
jerojasro@336 328 patches that MQ can apply. It is represented as a list of names, with
jerojasro@336 329 one name saved per line. Leading and trailing white space in each
jerojasro@336 330 line are ignored.
jerojasro@336 331
jerojasro@336 332 Lines may contain comments. A comment begins with the ``\texttt{\#}''
jerojasro@336 333 character, and extends to the end of the line. Empty lines, and lines
jerojasro@336 334 that contain only comments, are ignored.
jerojasro@336 335
jerojasro@336 336 You will often need to edit the \sfilename{series} file by hand, hence
jerojasro@336 337 the support for comments and empty lines noted above. For example,
jerojasro@336 338 you can comment out a patch temporarily, and \hgxcmd{mq}{qpush} will skip
jerojasro@336 339 over that patch when applying patches. You can also change the order
jerojasro@336 340 in which patches are applied by reordering their entries in the
jerojasro@336 341 \sfilename{series} file.
jerojasro@336 342
jerojasro@336 343 Placing the \sfilename{series} file under revision control is also
jerojasro@336 344 supported; it is a good idea to place all of the patches that it
jerojasro@336 345 refers to under revision control, as well. If you create a patch
jerojasro@336 346 directory using the \hgxopt{mq}{qinit}{-c} option to \hgxcmd{mq}{qinit}, this
jerojasro@336 347 will be done for you automatically.
jerojasro@336 348
jerojasro@336 349 \subsection{The \sfilename{status} file}
jerojasro@336 350
jerojasro@336 351 The \sfilename{status} file contains the names and changeset hashes of
jerojasro@336 352 all patches that MQ currently has applied. Unlike the
jerojasro@336 353 \sfilename{series} file, this file is not intended for editing. You
jerojasro@336 354 should not place this file under revision control, or modify it in any
jerojasro@336 355 way. It is used by MQ strictly for internal book-keeping.
jerojasro@336 356
jerojasro@336 357 %%% Local Variables:
jerojasro@336 358 %%% mode: latex
jerojasro@336 359 %%% TeX-master: "00book"
jerojasro@336 360 %%% End: