nike - mercurial svn
¿Puede Mercurial usar.hgignore para olvidar los archivos? (4)
Me olvido de colocar el .hgignore correcto en mi proyecto y ahora me encuentro con muchos archivos inútiles en mi repositorio. Como estos archivos ya están bajo el control de fuente, hghignore no los seleccionará.
¿Hay alguna manera de que hg olvide todos los archivos que coincidan con .hgignore?
Debe eliminar ese archivo para ignorarlo.
hg remove -Af myfile
(elimine de la revisión mientras deja una copia en su área de trabajo: o hg forget
)
Pero su repositorio de Mercurial no "olvidará" esos mismos archivos en las revisiones anteriores.
La eliminación de un archivo no afecta su historial.
Es importante entender que eliminar un archivo solo tiene dos efectos.
- Elimina la versión actual del archivo del directorio de trabajo.
- Impide que Mercurial rastree los cambios en el archivo, desde el momento de la siguiente confirmación.
La eliminación de un archivo no altera de ningún modo el historial del archivo.
Otra forma, cuando tiene muchos archivos adicionales que necesita ignorar ahora, es:
- eliminarlos (del sistema de archivos, no con un comando hg, pero con un comando OS ''rm'')
-
hg addremove
(advertencia, agregará archivos actualmente no comprometidos, perohg remove
todos los demás archivos que acaba de usar)
Consulte Cómo olvidar todos los archivos eliminados con Mercurial para obtener más información.
Esto es lo que hice para cada uno de los directorios mencionados en .hgignore
for /f "delims=" %i in (''dir bin /ad/s/b'') do hg forget %i/
Y para archivos
for /f "delims=" %i in (''dir *.user /s/b'') do hg forget %i
RENUNCIA:
No sé si funcionará en sistemas operativos que no sean Windows o no.
No creo que hg pueda hacerlo fuera de la caja.
Pero es bastante fácil hacer tu propio. Las entradas de hgignore son regexp o glob, por lo que puede revisar las entradas y buscar los archivos / directorios correspondientes y hacer "hg remove" en ellos.
Para hgignore parsing / matching, si usa python puede simplemente llamar a las funciones en hg''s ignore.py.
Tal vez alguien pueda escribir una extensión para esto.
filesets (requiere 1.9):
hg forget "set:hgignore() and not ignored()"