2009-11-05 11 views
17

¿Alguien puede decirme el patrón .hgignore para rastrear un archivo específico en un directorio e ignorar todo lo demás?.hgignore todo el árbol de directorios excepto un archivo específico

Tengo un directorio "media" que contiene un "default.png", para obvios propósitos, y el resto del directorio contendrá los medios del usuario. Queremos que hg ignore todo en el directorio de medios excepto el archivo predeterminado.

Respuesta

25

Probar:

syntax: regex 
^media/.* 

o (dejarlo en el pegote defecto y hacer)

media/** 

y luego manualmente hg add media/default.png.

En mercurial (a diferencia de CVS) puede agregar archivos que coinciden con sus patrones de ignorar y funcionan bien. Así que ignore ampliamente y hg add lo que quiere rastrear.

+1

esto funciona, pero requiere que agregue manualmente los archivos que desea y hg no se dará cuenta si agrega un nuevo archivo que coincida con el patrón (si coincide con * .c, por ejemplo). – frankster

+0

Totalmente cierto. Todavía prefiero las cosas de aspecto negativo, pero no todos lo hacen. Personalmente, me aseguro de que mis archivos transitorios y mis cosas para guardar terminen en directorios diferentes, así que no tengo que preocuparme por ello. –

4

No importa esto parece funcionar ...

syntax: regex 
^media/(?!default.png) 
+0

esto también coincidiría default.png.sadkjsdhfdshfjkds – frankster

+0

sí, necesita un '$ 'al final para estar seguro. mira tu respuesta –

6
syntax: regex 
^media/(?!default.png$) 

casi lo mismo que John Mee de partidos, pero al final de la línea, en lugar de algo que comienza con Default.png.

si desea permitir que cualquier archivo .c pero nada más, se puede utilizar:

^media/(?!.+\.c$) 
5

resumirlo como un BKM (más conocido Método)

De cualquier hgignore todo, y luego hg agregue los pocos archivos que desea rastrear.

O utilizar un patrón como

syntax: regex 
^path/(?!files-that-you-want-not-to-ignore$) 

(Sólo quería ver la respuesta completa en un solo lugar.)

+1

¿Cómo especifico múltiples archivos? – m4l490n

Cuestiones relacionadas