Domanda

Ho un problema che non riesco a capire. Sto usando TortoiseHg (versione 0.7.5) su Windows ma su Linux ho lo stesso problema. Eccolo:

Il mio .hgignore file:

syntax: regexp
^[^\\/]+$

Quello che sto cercando di ottenere è aggiungere all'elenco ignore i file che si trovano nella radice del repository hg.

Ad esempio se ho così:

.hg
+mydir1
+mydir2
-myfile1
-myfile2
-anotherfile1
-anotherfile2 
.hgignore

Voglio che myfile1 (2) e anotherfile1 (2) vengano ignorati (i nomi sono solo ai fini di questo esempio - non hanno una semplice regola che può essere inserita facilmente nel file hgignore)

C'è qualcosa che mi manca perché sono abbastanza sicuro che regexp sia buono (l'ho anche provato)? Idee?

C'è un modo più semplice per raggiungere questo obiettivo? [da aggiungere all'elenco ignora i file che si trovano nella radice del repository mercurial]

È stato utile?

Soluzione

Ho inoltrato questa domanda in #mercurial su irc.freenode.net e la risposta è stata che non è possibile distinguere tra file e directory & # 8212; la directory è abbinata senza la barra che stai cercando nella tua regexp.

Tuttavia, se puoi presumere che le tue directory non conterranno mai un punto completo ., ma i tuoi file funzioneranno, allora qualcosa del genere sembra funzionare:

^[^/]*\..*$

L'ho provato in un repository come questo:

% hg status -ui
? a.txt
? bbb
? foo/x.txt
? foo/yyy

L'aggiunta del .hgignore file dà:

% hg status -ui
? bbb
? foo/x.txt
? foo/yyy
I .hgignore
I a.txt

che indica che il file a.txt viene ignorato correttamente nella directory principale, ma x.txt nella sottodirectory foo non lo è. Puoi anche vedere che un file chiamato solo bbb nella directory principale non è non ignorato. Ma forse puoi aggiungere tu stesso tali file al bar.baz file.

Se ti capita di avere una directory come <=> nella tua directory principale, questa directory e tutti i file all'interno verranno ignorati. Spero che questo aiuti un po '.

Altri suggerimenti

Ecco un trucco sporco:

Crea un file vuoto " .hidden " nella tua directory, quindi aggiungi a .hgignore:

^mydir/(?!\.hidden).+$

Questo ignorerà tutti i file nella directory tranne " .hidden " ;.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top