2010-03-01 7 views
3

Je veux tout ignorer MAIS un sous-dossier dans Mercurial.Tout ignorer sauf un sous-dossier dans Mercurial

Le dossier que je veux garder:

a/b/c/d/e/f 

Tout le reste sous:

a/b 

doit être ignorée. J'utilise le mode regexp dans le fichier .hgignore. Voilà ce que j'ai jusqu'à présent:

a/b/(?!c) 
a/b/c/(?!d) 
a/b/c/d/(?!e) 
a/b/c/d/e/(?!f) 

Même si cela fonctionne bien, je voudrais réduire à une seule ligne:

a/b/(?!c/d/e/f) 

Sauf cela ne fonctionne pas. J'ai essayé d'échapper aux barres obliques de plusieurs façons, mais cela n'a pas aidé.

Un conseil?

Répondre

1

Avez-vous essayé ceci:

a/b/(?!c).* 
+0

Ceci n'ignorera pas a/b/c/doom, par exemple ... :( –

0
^a/b/(?!c/d/e/f).*$ 
+0

Cela n'a pas fonctionné non plus :( –

0

Pourquoi ne pas simplement créer le repo hg dans a/b/c/d/e/f?

+0

Parce que a est le référentiel principal, b est une dépendance externe et a/b/c/d/e/f est une composante de b –

1

Vous le savez probablement déjà, mais vous pouvez simplement ajouter le contenu dans a/b/c/d/e/f sans ajouter d'exception au fichier .hgignore. Ce n'est pas parfait, vous devez vous rappeler d'ajouter de nouveaux fichiers, mais j'ai pensé que je le mentionnerais car ce n'est pas évident pour les réfugiés CVS/SVN.

+0

Eheh Oui, je le savais mais je préférerais éviter cette habitude, c'est vraiment sujette aux erreurs et j'oublie habituellement les choses ... –

+0

peut l'automatiser avec quelque chose comme 'hg status -i -n | grep '^/a/b/c/d/e/f' | xargs hg add' que vous pourriez même mettre dans un crochet de pré-validation Vraiment Cependant, si vous avez un contrôle sur la mise en page de ce projet, vous devriez probablement déplacer tout ce qui est important et 5 niveaux en profondeur vers un répertoire de plus haut niveau. –

Questions connexes