Domanda

Caveat: Provo tutte le possibilità elencate qui: Come posso ignorare tutto in una cartella in Mercurial .
Nessuno funziona come spero.

Voglio ignorare ogni cosa nella cartella test . Ma non ignorare srcProject \ test \ TestManager

Ci provo

syntax: glob
test/**

E ignora test e srcProject\test\TestManager

Con:

syntax: regexp
^/test/

È la stessa cosa.

Anche con:

syntax: regexp
test\\*

Ho installato TortoiseHG 0.4rc2 con Mercurial-626cb86a6523 + tortoisehg, Python-2.5.1, PyGTK-2.10.6, GTK-2.10.11 in Windows

È stato utile?

Soluzione

Provalo senza la barra dopo il cursore nella versione regexp.

^test/

Ecco un test:

~$ mkdir hg-folder-ignore
~$ cd hg-folder-ignore
~/hg-folder-ignore$ echo '^test/' > .hgignore
~/hg-folder-ignore$ hg init
~/hg-folder-ignore$ mkdir test
~/hg-folder-ignore$ touch test/ignoreme
~/hg-folder-ignore$ mkdir -p srcProject/test/TestManager
~/hg-folder-ignore$ touch srcProject/test/TestManager/dont-ignore
~/hg-folder-ignore$ hg stat
? .hgignore
? srcProject/test/TestManager/dont-ignore

Si noti che ignoreme non viene visualizzato e non ignorarlo.

Altri suggerimenti

È possibile utilizzare le affermazioni look-ahead e look-behind negative di larghezza zero per specificare che si desidera ignorare test solo quando non è preceduto da srcProject e non seguito da TestManager :

syntax: regexp
(?<!srcProject\\)test\\(?!TestManager)

Mercurial usa le espressioni regolari di Python, quindi puoi trovare maggiori informazioni su asserzioni di larghezza zero nei documenti Python: https://docs.python.org/library/re.html#regular-expression-syntax

Entrambi i casi hanno funzionato per me (su Linux e Windows):

syntax: regexp
^backup/     #root folder
nbproject/   #any folder

o

syntax: glob
./backup/*   #root folder
nbproject/*  #any folder

Tuttavia, non è stato prima che aggiungessi un collegamento al file .hgignore al file .hgrc nel mio repository:

[ui]
ignore = .hg/.hgignore

Vale anche la pena ricordare che mercurial ignora i file che non sta attualmente monitorando , che sono quelli aggiunti prima di configurarlo per ignorarli. Quindi, non lasciarti scoraggiare dallo stato di hg dicendo che alcuni archiviati sono M (modificato) o! (mancante) nelle cartelle che hai appena aggiunto all'elenco ignora!

Crea il file .hgignore nella directory principale del repository

Ora aggiungi i seguenti contenuti nel file.

  

sintassi: glob

     

bin / **

     

*. DS_Store

Questo rimuoverà la directory bin e tutti i file * .DS_Store dal repository

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