precio - Cómo olvidar todos los archivos eliminados con Mercurial
mercurial svn (5)
Soy nuevo en Mercurial y después de una limpieza de la carpeta de imágenes en mi proyecto, ¡tengo un montón de archivos que muestran! en el ''estado de hg''. Puedo escribir un ''hg forget'' para cada uno, pero debe haber una manera más fácil.
Entonces, ¿cómo puedo decirle a mercurial que se olvide de todos los archivos eliminados (estado =!) En una carpeta?
Puedes probar:
hg forget -I ''*''
para incluir todos los archivos en tu comando de olvido.
Si también está de acuerdo con agregar cualquier archivo que exista y no se ignore, entonces:
hg addremove
sería una forma popular de hacer eso.
Utilizando el indicador -d
para el estado, que muestra los archivos perdidos:
for file in $(hg status -d | cut -d " " -f 2); do echo hg forget $file; done
Ejecute esto en la raíz de su repositorio, y si está satisfecho con los resultados, elimine el echo
Esto tiene la ventaja sobre la respuesta aceptada de no hacer ningún trabajo adicional, por ejemplo, agregar un montón de archivos sin seguimiento.
más corto en lugar de
for file in $(hg status -d | cut -d " " -f 2); do echo hg forget $file; done
esta
hg status -d | cut -d " " -f 2 | xargs echo hg forget # test case
hg status -d | cut -d " " -f 2 | xargs hg forget # real work
Con el conjunto de archivos (Mercurial 1.9):
hg forget "set:deleted()"
En general, en Linux o Mac:
hg status -dn | while read file ; do hg forget "$file" ; done
O, si su shell lo permite, si no hay demasiados archivos, y si los nombres de archivo no contienen espacios o caracteres especiales, entonces:
hg forget $(hg st -dn)
yo