web-dev-qa-db-fra.com

Comment puis-je tout ignorer sous un dossier dans Mercurial

Je cherche une expression pour le fichier .hgignore, pour ignorer tous les fichiers situés sous un dossier spécifié.

par exemple: je voudrais ignorer tous les fichiers et dossiers sous bin

En fait, tout conseil sur la manière dont les expressions sont formées serait formidable

147
Xian

Alternativement:

syntax: glob
bin/**
165
Ry4an Brase

J'ai fait quelques expériences et j'ai constaté que la syntaxe regex sous Windows s'applique au chemin commençant par le référentiel actuel, avec des barres obliques inverses transformées en barres obliques.

Donc, si votre référentiel est dans E:\Dev par exemple, hg status appliquera les modèles à foo/bar/file1.c et autres. Les ancres s’appliquent à ce chemin.

Alors:

  • Glob s'applique aux éléments du chemin et est lié aux éléments
  • foo correspond à n'importe quel dossier (ou fichier) nommé foo (ne doit pas "foobar" ni "barfoo")
  • * foo * correspond à n'importe quel dossier ou fichier avec "foo" dans le nom
  • foo/bar * correspond à tous les fichiers du dossier "foo" commençant par "bar"


  • Regex est sensible à la casse, pas ancré
  • Bien sûr, les caractères spéciaux de type backslash regex comme. (point)
  • / correspond à\séparateur de chemin sous Windows.\ne correspond pas à ce séparateur ...
  • foo correspond à tous les fichiers et dossiers avec "foo" à l'intérieur
  • foo/ne correspond qu'aux dossiers se terminant par "foo"
  • / foo/correspond au dossier "foo" quelque part dans le chemin
  • / foo/bar/correspond au dossier "bar" dans le dossier "foo" quelque part dans le chemin
  • ^ toto correspond à un fichier ou un dossier commençant par toto à la racine du référentiel
  • foo $ correspond au fichier se terminant par foo

J'espère que cela vous aidera, j'ai trouvé la page HGIGNORE (5) un peu succincte.

50
PhiLho

Les deux filtreront également un répertoire appelé cabin, qui pourrait ne pas être ce que vous voulez. Si vous filtrez au plus haut niveau, vous pouvez utiliser:

^/bin/

Pour les répertoires bin sous votre racine, vous pouvez omettre le ^. Il n'est pas nécessaire de spécifier la syntaxe, regexp est la valeur par défaut.

8
Derek Slager

Tant pis, je l'ai eu

syntax: regexp
bin\\*

les expressions suivent la syntaxe d'expression régulière Perl standard.

2
Xian

syntaxe: glob bin/**

Cette réponse est indiquée ci-dessus, mais j'aimerais également ajouter que * et ** sont gérés différemment. ** est récursif, * n'est pas.

Voir Hg Patterns

0
balrob

ignorer les fichiers .class 

syntax: regexp
?\.class
0
user2427