2011-11-08 12 views
5

Ho para eliminar todos los archivos * .bak o * .orig en mercurial?hg remove -I PATTERN, ¿cómo funciona?

ejemplo:

C:\dev\web>hg stat 
? Views\System\UnderConstruction.cshtml.bak 
? Views\Topic\Index.cshtml.bak 
? Views\Topic\MasterPage.cshtml.bak 
? Web.config.bak 

C:\dev\web>hg rem -I *.bak 
abort: no files specified 

Respuesta

5

hg remove sólo elimina los archivos que ya se han cometido. AFAIK, no hay ningún comando en mercurial para eliminar archivos sin seguimiento.

Para aprender cómo funcionan los patrones de archivos en mercurial, ejecute hg help patterns.

+0

+1 para hg help patterns advice – nwahmaet

2
  1. Los archivos sin seguimiento ("?" Signo) puede ser retirado por el sistema operativo, no Mercurial
  2. Hay que dejar los archivos como es, sólo tiene que añadir patrones a .hgignore y después de que los archivos, haciendo coincidir los patrones, se no apper en hg status más
  3. correcta comando de quitar para quitar rastreado bak, y orig archivos estarán hg remove -I **.bak -I **.orig
1

debería echar un vistazo al hg purge extensión:

Borrar archivos desconocidos para Mercurial. Esto es útil para probar cambios locales y no comprometidos en un árbol fuente de otro modo limpio.

Esto significa que la purga se borrará:

  • archivos desconocidos: los archivos marcados con "?" por "hg status" directorios
  • vacíos: de hecho Mercurial ignora los directorios en que no contengan archivos bajo gestión de control de origen

Pero dejarán sin tocar:

  • modificados y no modificados archivos rastreados
  • Archivos ignorados (a menos que se especifique --todos)
  • Nuevos archivos agregados al repositorio (con "hg add")

Si los directorios se proporcionan en la línea de comandos, solo se consideran los archivos en estos directorios .

Tenga cuidado con la purga, ya que podría eliminar irreversiblemente algunos archivos que olvidó agregar al repositorio. Si solo desea imprimir la lista de archivos que este programa eliminaría, use la opción --print.

0

Usted puede hacer los dos comandos siguientes:

D:\workspace>hg purge -I **/*.orig --all 

y luego:

D:\workspace>hg purge -I **/*.bak --all 
no se eliminarán los archivos

sobre orugas, pero supongo que eso no es un problema para usted .Asegúrese de habilitar la extensión de purga antes de ejecutar esto, y puede ejecutar ejecuciones en seco con el argumento --print.