rev |
line source |
igor@402
|
1 \chapter{File names and pattern matching}
|
igor@402
|
2 \label{chap:names}
|
igor@402
|
3
|
jerojasro@430
|
4 Mercurial provee mecanismos que le permiten trabajar con nombres de
|
jerojasro@430
|
5 ficheros en una manera consistente y expresiva.
|
jerojasro@430
|
6
|
jerojasro@430
|
7 \section{Nombrado de ficheros simple}
|
jerojasro@430
|
8
|
jerojasro@430
|
9 % TODO traducción literal de "under the hood". revisar
|
jerojasro@430
|
10 Mercurial usa un mecanismo unificado ``bajo el capó'' para manejar
|
jerojasro@430
|
11 nombres de ficheros. Cada comando se comporta de manera uniforme con
|
jerojasro@430
|
12 respecto a los nombres de fichero. La manera en que los comandos
|
jerojasro@430
|
13 operan con nombres de fichero es la siguiente.
|
jerojasro@430
|
14
|
jerojasro@430
|
15 Si usted especifica explícitamente nombres reales de ficheros en la
|
jerojasro@430
|
16 línea de comandos, Mercurial opera únicamente sobre dichos ficheros,
|
jerojasro@430
|
17 como usted esperaría.
|
igor@402
|
18 \interaction{filenames.files}
|
igor@402
|
19
|
jerojasro@430
|
20 Cuando usted provee el nombre de un directorio, Mercurial interpreta
|
jerojasro@430
|
21 eso como ``opere en cada fichero en este directorio y sus
|
jerojasro@430
|
22 subdirectorios''. Mercurial va por todos los ficheros y subdirectorios
|
jerojasro@430
|
23 de un directorio en orden alfabético. Cuando encuentra un
|
jerojasro@430
|
24 subdirectorio, lo recorrerá antes de continuar con el directorio
|
jerojasro@430
|
25 actual.
|
igor@402
|
26 \interaction{filenames.dirs}
|
igor@402
|
27
|
jerojasro@430
|
28 \section{Ejecución de comandos sin ningún nombre de fichero}
|
jerojasro@430
|
29
|
jerojasro@430
|
30 Los comandos de Mercurial que trabajan con nombres de fichero tienen
|
jerojasro@430
|
31 comportamientos por defecto adecuados cuando son utilizados sin pasar
|
jerojasro@430
|
32 ningún patrón o nombre de fichero. El tipo de comportamiento depende
|
jerojasro@431
|
33 de lo que haga el comando. Aquí presento unas cuantas reglas generales
|
jerojasro@431
|
34 que usted puede usar para que es lo que probablemente hará un comando
|
jerojasro@431
|
35 si usted no le pasa ningún nombre de fichero con el cual trabajar.
|
igor@402
|
36 \begin{itemize}
|
jerojasro@431
|
37 \item Muchos comandos operarán sobre el directorio de trabajo
|
jerojasro@431
|
38 completo. Por ejemplo, esto es lo que hace el comando
|
jerojasro@431
|
39 \hgcmd{add},
|
jerojasro@431
|
40 \item Si el comando tiene efectos difíciles o incluso imposibles de
|
jerojasro@431
|
41 revertir, se le obligará a usted a proveer explícitamente al menos
|
jerojasro@431
|
42 % TODO revisar ese "lo proteje a usted"
|
jerojasro@431
|
43 un nombre o patrón (ver más abajo). Esto lo proteje a usted de,
|
jerojasro@431
|
44 por ejemplo, borrar ficheros accidentalmente al ejecutar
|
jerojasro@431
|
45 \hgcmd{remove} sin ningún argumento.
|
igor@402
|
46 \end{itemize}
|
igor@402
|
47
|
jerojasro@431
|
48
|
jerojasro@431
|
49 Es fácil evitar este comportamiento por defecto, si no es el adecuado
|
jerojasro@431
|
50 para usted. Si un comando opera normalmente en todo el directorio de
|
jerojasro@431
|
51 trabajo, usted puede llamarlo para que trabaje sólo en el directorio
|
jerojasro@431
|
52 actual y sus subdirectorio pasándole el nombre ``\dirname{.}''.
|
igor@402
|
53 \interaction{filenames.wdir-subdir}
|
igor@402
|
54
|
jerojasro@431
|
55 Siguiendo la misma línea, algunos comandos normalmente imprimen las
|
jerojasro@431
|
56 rutas de ficheros con respecto a la raíz del repositorio, aún si usted
|
jerojasro@431
|
57 los llama dentro de un subdirectorio. Dichos comandos imprimirán las
|
jerojasro@431
|
58 rutas de los ficheros respecto al directorio en que usted se encuentra
|
jerojasro@431
|
59 si se les pasan nombres explícitos. Vamos a ejecutar el comando
|
jerojasro@431
|
60 \hgcmd{status} desde un subdirectorio, y a hacer que opere en el
|
jerojasro@431
|
61 directorio de trabajo completo, a la vez que todas las rutas de
|
jerojasro@431
|
62 ficheros se imprimen respecto a nuestro subdirectorio, pasándole la
|
jerojasro@431
|
63 salida del comando \hgcmd{root}.
|
igor@402
|
64 \interaction{filenames.wdir-relname}
|
igor@402
|
65
|
jerojasro@431
|
66 \section{Reportar que está pasando}
|
jerojasro@431
|
67
|
jerojasro@431
|
68 El ejemplo con el comando \hgcmd{add} en la sección anterior ilustra
|
jerojasro@431
|
69 algo más que es útil acerca de los comandos de Mercurial. Si un
|
jerojasro@431
|
70 comando opera en un fichero que usted no pasó explícitamente en la
|
jerojasro@431
|
71 línea de comandos, usualmente se imprimirá el nombre del fichero, para
|
jerojasro@431
|
72 que usted no sea sorprendido por lo que sucede.
|
jerojasro@431
|
73
|
jerojasro@431
|
74 Esto es el principio de \emph{mínima sorpresa}. Si usted se ha
|
jerojasro@431
|
75 referido explícitamente a un fichero en la línea de comandos, no tiene
|
jerojasro@431
|
76 mucho sentido repetir esto de vuelta a usted. Si Mercurial está
|
jerojasro@431
|
77 actuando en un fichero \emph{implícitamente}, porque usted no pasó
|
jerojasro@431
|
78 nombres, ni directorios, ni patrones (ver más abajo), lo más seguro es
|
jerojasro@431
|
79 decirle a usted qué se está haciendo.
|
jerojasro@431
|
80
|
jerojasro@431
|
81 Usted puede silenciar a los comandos que se comportan de esta manera
|
jerojasro@431
|
82 usando la opción \hggopt{-q}. También puede hacer que impriman el
|
jerojasro@431
|
83 nombre de cada fichero, aún aquellos que usted indicó explícitamente,
|
jerojasro@431
|
84 usando la opción \hggopt{-v}.
|
jerojasro@431
|
85
|
jerojasro@431
|
86 \section{Uso de patrones para identificar ficheros}
|
jerojasro@431
|
87
|
jerojasro@431
|
88 Además de trabajar con nombres de ficheros y directorios, Mercurial le
|
jerojasro@431
|
89 permite usar \emph{patrones} para identificar ficheros. El manejo de
|
jerojasro@431
|
90 patrones de Mercurial es expresivo.
|
jerojasro@431
|
91
|
jerojasro@431
|
92 En sistemas tipo Unix (Linux, MacOS, etc.), el trabajo de asociar
|
jerojasro@431
|
93 patrones con nombres de ficheros recae sobre el intérprete de comandos.
|
jerojasro@431
|
94 En estos sistemas, usted debe indicarle explícitamente a Mercurial que
|
jerojasro@431
|
95 el nombre que se le pasa es un patrón. En Windows, el intérprete no
|
jerojasro@431
|
96 expande los patrones, así que Mercurial identificará automáticamente
|
jerojasro@431
|
97 los nombres que son patrones, y hará la expansión necesaria.
|
jerojasro@431
|
98
|
jerojasro@431
|
99 Para pasar un patrón en vez de un nombre normal en la línea de
|
jerojasro@431
|
100 comandos, el mecanismo es simple:
|
igor@402
|
101 \begin{codesample2}
|
igor@402
|
102 syntax:patternbody
|
igor@402
|
103 \end{codesample2}
|
jerojasro@431
|
104 Un patrón es identificado por una cadena de texto corta que indica qué
|
jerojasro@431
|
105 tipo de patrón es, seguido por un dos puntos, seguido por el patrón en
|
jerojasro@431
|
106 sí.
|
jerojasro@431
|
107
|
jerojasro@431
|
108 Mercurial soporta dos tipos de sintaxis para patrones. La que se usa
|
jerojasro@431
|
109 con más frecuencia se denomina \texttt{glob}\ndt{Grupo, colección,
|
jerojasro@431
|
110 aglomeración.}; es el mismo tipo de asociación de patrones usado por
|
jerojasro@431
|
111 el intérprete de Unix, y también debería ser familiar para los
|
jerojasro@431
|
112 usuarios de la línea de comandos de Windows.
|
jerojasro@431
|
113
|
jerojasro@431
|
114 Cuando Mercurial hace asociación automática de patrones en Windows,
|
jerojasro@431
|
115 usa la sintaxis \texttt{glob}. Por esto, usted puede omitir el
|
jerojasro@431
|
116 prefijo ``\texttt{glob:}'' en Windows, pero también es seguro usarlo.
|
jerojasro@431
|
117
|
jerojasro@431
|
118 La sintaxis \texttt{re}\ndt{Expresiones regulares.} es más poderosa;
|
jerojasro@431
|
119 le permite especificar patrones usando expresiones regulares, también
|
jerojasro@431
|
120 conocidas como regexps.
|
jerojasro@431
|
121
|
jerojasro@431
|
122 A propósito, en los ejemplos siguientes, por favor note que yo tengo
|
jerojasro@431
|
123 el cuidado de rodear todos mis patrones con comillas sencillas, para
|
jerojasro@431
|
124 que no sean expandidos por el intérprete antes de que Mercurial pueda
|
jerojasro@431
|
125 verlos.
|
jerojasro@431
|
126
|
jerojasro@431
|
127 \subsection{Patrones \texttt{glob} estilo intérprete}
|
jerojasro@431
|
128
|
jerojasro@431
|
129 Este es un vistazo general de los tipos de patrones que usted puede
|
jerojasro@431
|
130 usar cuando está usando asociación con patrone glob.
|
jerojasro@431
|
131
|
jerojasro@431
|
132 La secuencia ``\texttt{*}'' se asocia con cualquier cadena, dentro de
|
jerojasro@431
|
133 un único directorio.
|
igor@402
|
134 \interaction{filenames.glob.star}
|
igor@402
|
135
|
jerojasro@431
|
136 La secuencia ``\texttt{**}'' se asocia con cualquier cadena, y cruza los
|
jerojasro@431
|
137 % TODO token
|
jerojasro@431
|
138 límites de los directorios. No es una elemento estándar de los tokens
|
jerojasro@431
|
139 de glob de Unix, pero es aceptado por varios intérpretes Unix
|
jerojasro@431
|
140 populares, y es muy útil.
|
igor@402
|
141 \interaction{filenames.glob.starstar}
|
igor@402
|
142
|
jerojasro@431
|
143 La secuencia ``\texttt{?}'' se asocia con cualquier caracter sencillo.
|
igor@402
|
144 \interaction{filenames.glob.question}
|
igor@402
|
145
|
jerojasro@431
|
146 El caracter ``\texttt{[}'' marca el inicio de una \emph{clase de
|
jerojasro@431
|
147 caracteres}. Ella se asocia con cualquier caracter sencillo dentro de
|
jerojasro@431
|
148 la clase. La clase se finaliza con un caracter ``\texttt{]}''. Una
|
jerojasro@431
|
149 clase puede contener múltiples \emph{rango}s de la forma
|
jerojasro@431
|
150 ``\texttt{a-f}'', que en este caso es una abreviación para
|
igor@402
|
151 ``\texttt{abcdef}''.
|
igor@402
|
152 \interaction{filenames.glob.range}
|
jerojasro@431
|
153 Si el primer caracter en aparecer después de ``\texttt{[}'' en la
|
jerojasro@431
|
154 clase de caracteres es un ``\texttt{!}'', se \emph{niega} la clase,
|
jerojasro@431
|
155 haciendo que se asocie con cualquier caracter sencillo que no se
|
jerojasro@431
|
156 encuentre en la clase.
|
igor@402
|
157
|
jerojasro@432
|
158 Un ``\texttt{\{}'' marca el inicio de un grupo de subpatrones, en
|
jerojasro@432
|
159 donde todo el grupo es asociado si cualquier subpatrón en el grupo
|
jerojasro@432
|
160 puede ser asociado. El caracter ``\texttt{,}'' separa los subpatrones,
|
jerojasro@432
|
161 y el ``\texttt{\}}'' finaliza el grupo.
|
igor@402
|
162 \interaction{filenames.glob.group}
|
igor@402
|
163
|
jerojasro@432
|
164 \subsubsection{Cuidado!}
|
jerojasro@432
|
165
|
jerojasro@432
|
166 No olvide que si usted desea asocia un patrón con cualquier
|
jerojasro@432
|
167 directorio, no debería usar el elemento para asociar con cualquier
|
jerojasro@432
|
168 cadena ``\texttt{*}'', ya que éste sólo generará asociaciones dentro
|
jerojasro@432
|
169 de un solo directorio. En vez de eso, use el caracter para asociar con
|
jerojasro@432
|
170 cualquier cadena ``\texttt{**}''. Este pequeño ejemplo ilustra la
|
jerojasro@432
|
171 diferencia entre los dos.
|
igor@402
|
172 \interaction{filenames.glob.star-starstar}
|
igor@402
|
173
|
jerojasro@432
|
174 \subsection{Asociación con patrones de expresiones regulares \texttt{re}}
|
igor@402
|
175
|
jerojasro@433
|
176 Mercurial acepta la misma sintaxis para expresiones regulares del
|
jerojasro@433
|
177 lenguaje de programación Python (internamente se usa el motor de
|
jerojasro@433
|
178 expresiones regulares de Python). Esta sintaxis está basada en la
|
jerojasro@433
|
179 misma del lenguaje Perl, que es el dialecto más popular en uso
|
jerojasro@433
|
180 (por ejemplo, también se usa en Java).
|
jerojasro@433
|
181
|
jerojasro@433
|
182 No discutiré el dialecto de expresiones regulares de Mercurial en
|
jerojasro@433
|
183 detalle aquí, ya que las mismas no son usadas frecuentemente. Las
|
jerojasro@433
|
184 expresiones regulares al estilo Perl se encuentran documentadas
|
jerojasro@433
|
185 exhaustivamente en una multitud de sitios web, y en muchos libros.
|
jerojasro@433
|
186 En vez de eso, me enfocaré en unas cuantas cosas que usted debería
|
jerojasro@433
|
187 conocer si tiene la necesidad de usar expresiones regulares en
|
jerojasro@433
|
188 Mercurial.
|
jerojasro@433
|
189
|
jerojasro@433
|
190 Una expresión regular es comparada contra un nombre de fichero
|
jerojasro@433
|
191 completo, relativo a la raíz del repositorio. En otras palabras, aún
|
jerojasro@433
|
192 si usted se encuentra en un subdirectorio \dirname{foo}, si desea
|
jerojasro@433
|
193 asociar ficheros en este directorio, su patrón debe empezar con
|
jerojasro@433
|
194 ``\texttt{foo/}''.
|
igor@402
|
195
|
jerojasro@434
|
196 Un detalle a tener en cuenta es que, si le son familiares las
|
jerojasro@434
|
197 expresiones regulares al estilo Perl, las de Mercurial están
|
jerojasro@434
|
198 \emph{enraízadas}. Esto es, que la asociación de una expresión se hace
|
jerojasro@434
|
199 desde el inicio de la cadena; no se buscan coincidencias dentro de la
|
jerojasro@434
|
200 cadena. Para buscar coincidencias en cualquier sitio dentro de una
|
jerojasro@434
|
201 cadena, empiece su patrón con un ``\texttt{.*}''.
|
jerojasro@434
|
202
|
jerojasro@434
|
203 \section{Filtrado de archivos}
|
jerojasro@434
|
204
|
jerojasro@434
|
205 Mercurial no sólo le provee una variedad de formas para especificar
|
jerojasro@434
|
206 ficheros; le permite limitar aún más dichos ficheros mediante el uso
|
jerojasro@434
|
207 de \emph{filtros}. Los comandos que operan con nombres de fichero
|
jerojasro@434
|
208 aceptan dos opciones de filtrado.
|
igor@402
|
209 \begin{itemize}
|
jerojasro@434
|
210 \item \hggopt{-I}, o \hggopt{--include}, le permite especificar un
|
jerojasro@434
|
211 patrón con el que deben coincidir los ficheros para ser
|
jerojasro@434
|
212 procesados.
|
jerojasro@434
|
213 \item \hggopt{-X}, o \hggopt{--exclude}, le brinda una manera de
|
jerojasro@434
|
214 \emph{evitar} procesar ficheros, si coinciden con este patrón.
|
igor@402
|
215 \end{itemize}
|
jerojasro@434
|
216 Usted puede pasar múltiples veces las opciones \hggopt{-I} y
|
jerojasro@434
|
217 \hggopt{-X} en la línea de comandos, e intercalarlos como desee.
|
jerojasro@434
|
218 Por defecto, Mercurial interpreta los patrones que usted pase usando
|
jerojasro@434
|
219 la sintaxis glob (pero usted puede usar expresiones regulares si lo
|
jerojasro@434
|
220 necesita).
|
jerojasro@434
|
221
|
jerojasro@434
|
222 El filtro \hggopt{-I} puede verse como un ``procese todos los ficheros
|
jerojasro@434
|
223 que coincidan con este filtro''.
|
igor@402
|
224 \interaction{filenames.filter.include}
|
jerojasro@434
|
225 El filtro \hggopt{-X} puede verse como ``procese únicamente los
|
jerojasro@434
|
226 ficheros que no coincidan con este patrón''.
|
igor@402
|
227 \interaction{filenames.filter.exclude}
|
igor@402
|
228
|
jerojasro@434
|
229 \section{Ignorar ficheros y directorios no deseados}
|
igor@402
|
230
|
igor@402
|
231 XXX.
|
igor@402
|
232
|
jerojasro@504
|
233 \section{Sensibilidad a mayúsculas}
|
igor@402
|
234 \label{sec:names:case}
|
igor@402
|
235
|
jerojasro@434
|
236 Si usted está trabajando en un ambiente de desarrollo mixto que
|
jerojasro@434
|
237 contiene tanto sistemas Linux (u otro Unix) y sistemas Mac o Windows,
|
jerojasro@434
|
238 debería tener en mente el hecho de que ellos tratan
|
jerojasro@434
|
239 %TODO FIXME seguir desde aqui, no tengo idea de como traducir case
|
jerojasro@434
|
240 %sensitivity
|
igor@402
|
241 case (``N'' versus ``n'') of file names in incompatible ways. This is
|
igor@402
|
242 not very likely to affect you, and it's easy to deal with if it does,
|
igor@402
|
243 but it could surprise you if you don't know about it.
|
igor@402
|
244
|
igor@402
|
245 Operating systems and filesystems differ in the way they handle the
|
igor@402
|
246 \emph{case} of characters in file and directory names. There are
|
igor@402
|
247 three common ways to handle case in names.
|
igor@402
|
248 \begin{itemize}
|
igor@402
|
249 \item Completely case insensitive. Uppercase and lowercase versions
|
igor@402
|
250 of a letter are treated as identical, both when creating a file and
|
igor@402
|
251 during subsequent accesses. This is common on older DOS-based
|
igor@402
|
252 systems.
|
igor@402
|
253 \item Case preserving, but insensitive. When a file or directory is
|
igor@402
|
254 created, the case of its name is stored, and can be retrieved and
|
igor@402
|
255 displayed by the operating system. When an existing file is being
|
igor@402
|
256 looked up, its case is ignored. This is the standard arrangement on
|
igor@402
|
257 Windows and MacOS. The names \filename{foo} and \filename{FoO}
|
igor@402
|
258 identify the same file. This treatment of uppercase and lowercase
|
igor@402
|
259 letters as interchangeable is also referred to as \emph{case
|
igor@402
|
260 folding}.
|
igor@402
|
261 \item Case sensitive. The case of a name is significant at all times.
|
igor@402
|
262 The names \filename{foo} and {FoO} identify different files. This
|
igor@402
|
263 is the way Linux and Unix systems normally work.
|
igor@402
|
264 \end{itemize}
|
igor@402
|
265
|
igor@402
|
266 On Unix-like systems, it is possible to have any or all of the above
|
igor@402
|
267 ways of handling case in action at once. For example, if you use a
|
igor@402
|
268 USB thumb drive formatted with a FAT32 filesystem on a Linux system,
|
igor@402
|
269 Linux will handle names on that filesystem in a case preserving, but
|
igor@402
|
270 insensitive, way.
|
igor@402
|
271
|
jerojasro@434
|
272 \subsection{Almacenamiento portable y seguro de repositorios}
|
jerojasro@434
|
273
|
jerojasro@434
|
274 El mecanismo de almacenamiento de los repositorios en Mercurial es
|
jerojasro@504
|
275 \emph{robusto frente a sensibilidad/insensibilidad a mayúsculas}. Los nombres de
|
jerojasro@434
|
276 fichero son traducidos para que puedan ser almacenados de manera
|
jerojasro@504
|
277 segura tanto en sistemas sensibles como insensibles a mayúsculas. Esto
|
jerojasro@434
|
278 significa que usted puede usar herramientas normales de copia de
|
jerojasro@434
|
279 ficheros para transferir un repositorio Mercurial a, por ejemplo, una
|
jerojasro@434
|
280 memoria USB, y trasladar de manera segura la memoria y el repositorio
|
jerojasro@434
|
281 de ida y vuelta entre un Mac, un PC ejecutando Windows, y un sistema
|
jerojasro@434
|
282 Linux
|
jerojasro@434
|
283
|
jerojasro@434
|
284 \subsection{Detección de conflictos de mayúsculas/minúsculas}
|
jerojasro@504
|
285
|
jerojasro@504
|
286 Al operar en el directorio de trabajo, Mercurial respeta la política
|
jerojasro@504
|
287 de nombrado del sistema de archivos en que se encuentre el directorio
|
jerojasro@504
|
288 de trabajo. Si el sistema de ficheros conserva las diferencias entre
|
jerojasro@504
|
289 mayúsculas, pero no es sensible a ellas, Mercurial tratará los nombres
|
jerojasro@504
|
290 que sólo difieren en mayúsculas como uno solo y el mismo.
|
jerojasro@504
|
291
|
jerojasro@504
|
292 Un aspecto importante de este enfoque es que es posible consignar un
|
jerojasro@504
|
293 conjunto de cambios en un sistema de ficheros sensible a mayúsculas
|
jerojasro@504
|
294 (típicamente Linux o Unix) que terminará causando problemas para
|
jerojasro@504
|
295 usuarios en sistemas insensibles a mayúsculas (usualmente en Windows o
|
jerojasro@504
|
296 MacOS). Si un usuario de Linux consigna cambios a dos ficheros, uno de
|
jerojasro@504
|
297 ellos llamado \filename{myfile.c} y el otro llamado \filename{MyFile.C},
|
jerojasro@504
|
298 ambos serán almacenados correctamente en el repositorio. Y serán
|
jerojasro@504
|
299 representados correctamente como ficheros separados, en los
|
jerojasro@504
|
300 directorios de trabajo de otros usuarios de Linux.
|
jerojasro@504
|
301
|
jerojasro@504
|
302 Si un usuario de Windows o Mac jalan este cambio, no tendrán problemas
|
jerojasro@504
|
303 inicialmente, porque el mecanismo de almacenamiento de Mercurial es
|
jerojasro@504
|
304 seguro frente a sensibilidad/insensibilidad a mayúsculas. Sin embargo,
|
jerojasro@504
|
305 una vez que ellos traten de actualizar (\hgcmd{update}) el directorio
|
jerojasro@504
|
306 de trabajo con ese conjunto de cambios, o hagan fusión (\hgcmd{merge})
|
jerojasro@504
|
307 con ese conjunto de cambios, Mercurial verá el conflicto entre los dos
|
jerojasro@504
|
308 nombres de fichero que el sistema de ficheros trataría como el mismo,
|
jerojasro@504
|
309 e impedirá que ocurra la actualización o fusión.
|
jerojasro@504
|
310
|
jerojasro@504
|
311 \subsection{Arreglar un conflicto de mayúsculas/minúsculas}
|
jerojasro@504
|
312
|
jerojasro@504
|
313 Si usted está usando Windows o Mac en un entorno mixto donde algunos
|
jerojasro@504
|
314 de sus colaboradores están usando Linux o Unix, y Mercurial reporta un
|
jerojasro@504
|
315 conflicto de mayúsculas/minúsculas cuando usted trata de actualizar
|
jerojasro@504
|
316 (\hgcmd{update}) o fusionar (\hgcmd{merge}), el procedimiento para
|
jerojasro@504
|
317 arreglar el problema es simple.
|
jerojasro@504
|
318
|
jerojasro@504
|
319 Sólo busque un sistema Linux o Unix cercano, clone el repositorio
|
jerojasro@504
|
320 problema allí, y use el comando \hgcmd{rename} de Mercurial para
|
jerojasro@504
|
321 cambiar los nombres de cualquiera de los ficheros o directorios
|
jerojasro@504
|
322 problemáticos para que no causen más conflictos. Consigne este cambio,
|
jerojasro@504
|
323 y jálelo (\hgcmd{pull}) o empújelo (\hgcmd{push}) a su sistema Windows
|
jerojasro@504
|
324 o MacOS, y actualícelo (\hgcmd{update}) a la revisión con los nombres
|
jerojasro@504
|
325 que ya no generan conflictos.
|
jerojasro@504
|
326
|
jerojasro@504
|
327 El conjunto de cambios con los nombres con conflictos de
|
jerojasro@504
|
328 mayúsculas/minúsculas permanecerá en el historial de su proyecto, y
|
jerojasro@504
|
329 usted no podrá actualizar (\hgcmd{update}) su directorio de trabajo a
|
jerojasro@504
|
330 dicho conjunto de cambios en un sistema Windows o MacOS, pero puede
|
jerojasro@504
|
331 continuar el desarrollo sin impedimentos.
|
igor@402
|
332
|
igor@402
|
333 \begin{note}
|
jerojasro@504
|
334 Antes de la versión~0.9.3, Mercurial no usaba un mecanismos seguro
|
jerojasro@504
|
335 frente a sensibilidad/insensibilidad a mayúsculas o minúsculas, y no
|
jerojasro@504
|
336 detectaba los conflictos con nombres de ficheros. Si usted está
|
jerojasro@504
|
337 usando una versión más antigua de Mercurial en Windows o MacOS, le
|
jerojasro@504
|
338 recomiendo enérgicamente que se actualice.
|
igor@402
|
339 \end{note}
|
igor@402
|
340
|
igor@402
|
341 %%% Local Variables:
|
igor@402
|
342 %%% mode: latex
|
igor@402
|
343 %%% TeX-master: "00book"
|
igor@402
|
344 %%% End:
|