2010-03-24 16 views
6

Je travaille depuis longtemps avec un fichier .hgignore qui était bien et a récemment ajouté un nouveau type de fichiers à ignorer. Lors de l'exécution « hg status », j'ai remarqué ceci:Mercurial: quelques questions tous liés à .hgignore

M .hgignore 

Alors Mercurial considère le .hgignore être un fichier qui doit être suivi (si elle est une racine du projet). Maintenant j'ai lu divers docs mais mes points n'étaient pas spécifiquement adressés alors voici quelques questions très détaillées qui, je l'espère, peuvent m'aider à comprendre cela (il serait bien que quelqu'un répondant puisse citer et aborder ces trois points [ même avec un simple réponse oui/non pour chaque question]):

  • Si .hgignore être à l'origine du projet? (Je suppose qu'il devrait, vu qu'un développeur peut potentiellement travailler sur plusieurs projets qui auraient tous des exigences différentes .hgignore)

  • .hgignore peut être ignoré être Mercurial?

  • Si elle peut être ignorée, devrait.hgignore être ignorés par Mercurial (qui est différente de la question précédente)

Dans le cas où .hgignore devrait pas être ignoré, ne peut pas quelque chose de vraiment mauvais se produit si vous avez soudainement reculer plus tôt, quand un .hgignore vraiment vieux et incomplet a été utilisé? Je pense que j'ai vu des choses bizarres arriver avec certains fichiers de projet IDE par utilisateur (je ne dis pas que tous les fichiers de projets IDE sont par utilisateur seulement, mais certains le sont certainement) qui étaient censés être ignorés, mais le l'utilisateur revient à une ancienne version, où un ancien .hgignore est utilisé, puis soudainement les fichiers supposés être ignorés sont validés car l'ancien .hgignore ne les excluait pas.

Répondre

13

Vous n'ignorez généralement pas le fichier .hgignore car vous voulez qu'il fasse partie du référentiel afin que tous vos utilisateurs le finissent.

En ce qui concerne le retour en arrière et la validation accidentelle de fichiers, vous ne devriez pas - eh bien, cela pourrait vraiment arriver à n'importe quel moment. Engagez-vous de manière responsable.

Pour vos questions:

  • Oui, .hgignore devrait être à la base du référentiel.
  • Oui, .hgignore peut s'ignorer.
  • Non, .hgignore ne doit pas être ignoré (sauf si vous décidez que vous ne le souhaitez pas dans le référentiel).
+2

Impossible de penser à une raison pour ignorer .hgignore. Vous le changez, peut-être que vous ferez des erreurs et que vous devrez revenir, n'est-ce pas? Comme tout autre code ... –