Come posso ignorare tutto in una cartella in Mercurial
-
05-07-2019 - |
Domanda
Sto cercando un'espressione per il file .hgignore, per ignorare tutti i file sotto una cartella specificata.
Ad esempio: vorrei ignorare tutti i file e le cartelle sotto il cestino
In realtà qualsiasi consiglio su come si formano le espressioni sarebbe fantastico
Soluzione
In alternativa:
syntax: glob
bin/**
Altri suggerimenti
Ho fatto alcuni esperimenti e ho scoperto che la sintassi della regex su Windows si applica al percorso che inizia con il repository corrente, con barre rovesciate trasformate in barre.
Quindi, se il tuo repository è in E: \ Dev per esempio, hg status
applicherà i pattern a pippo / bar / file1.c e simili. Le ancore si applicano a questo percorso.
- Glob si applica agli elementi del percorso ed è radicato nelle parti degli elementi
- foo corrisponde a qualsiasi cartella (o file) denominata foo (non a " foobar " né " barfoo ")
- * foo * corrisponde a qualsiasi cartella o file con " foo " nel nome
- foo / bar * corrisponde a tutti i file in " foo " cartella che inizia con " bar "
- Regex fa distinzione tra maiuscole e minuscole, non ancorato
- Naturalmente, i caratteri speciali regex backslash come. (Dot)
- / match \ percorso separatore su Windows. \ non corrisponde a questo separatore ...
- foo corrisponde a tutti i file e cartelle con " foo " all'interno
- pippo / corrisponde solo alle cartelle che terminano con " pippo "
- / foo / corrisponde alla cartella " foo " da qualche parte nel percorso
- / foo / bar / corrisponde alla cartella " bar " nella cartella " foo " da qualche parte nel percorso
- ^ foo corrisponde al file o alla cartella che inizia da foo nella radice del repository
- foo $ corrisponde al file che termina con foo
Spero che questo possa aiutare, ho trovato HGIGNORE (5) pagina un po 'succinta.
Entrambi filtreranno anche una directory chiamata cabin
, che potrebbe non essere quella che desideri. Se stai filtrando il livello principale, puoi usare:
^/bin/
Per le directory bin
sotto la tua radice, puoi omettere ^. Non è necessario specificare la sintassi, regexp è l'impostazione predefinita.
Non importa, l'ho preso
syntax: regexp
bin\\*
le espressioni seguono la sintassi standard perl delle espressioni regolari.
sintassi: glob bin / **
Questa risposta è mostrata sopra, tuttavia vorrei anche aggiungere che * e ** sono gestiti in modo diverso. ** è ricorsivo, * non lo è.
Vedi Hg Patterns
per ignorare i file .class
syntax: regexp
?\.class