Comment puis-je faire mercurial ignorer n'importe quel fichier avec .xxx extension
Je veux Mercurial ignorer n'importe quel fichier avec une extension donnée.
Pour exemple, j'ai voulu ignorer les fichiers avec un .SUO extension. (Il n'y a pas besoin de contrôle de version de Visual Studio paramètres de l'utilisateur.)
Et j'ai donc changé .hgignore fichier présent:
syntax: glob
*.suo
Toutefois, cela n'a aucun effet, et Mercurial voit encore mon .suo fichier.
Ce que je fais mal ici?
- Sont les fichiers que vous essayez d'ignorer actuellement l'objet d'un suivi (ajouté) dans votre pension?
- Par ailleurs, c'est sur Windows, non?
Vous devez vous connecter pour publier un commentaire.
Si, lors de l'exécution de
hg status
avant de modifier votre .hgignore fichier, le .suo fichier avait un?
en face de lui, alors il devrait être ignorés aujourd'hui. Si quoi que ce soit d'autre (M
ouA
par exemple), il est déjà suivi par le référentiel et ne sera pas magiquement arrêter en cours de suivi. Dans un tel cas, vous aurez besoin de fairehg remove
sur le fichier pour le supprimer et ont hg arrêter le suivi, ou tout simplement nehg forget
sur elle pour avoir hg arrêter le suivi, mais garder le fichier. Soit devrait être suivie par un commit.Les seuls fichiers qui doit être omis de la liste de l'état si leur chemin correspond à un modèle dans la .hgignore de fichiers sont des fichiers qui ne sont pas suivies. Il serait insensé de ne pas inclure un fichier qui est suivi, parce que vous ne verrez jamais s'il a été modifié, ajouté ou supprimé.
Modifier: Mercurial uniquement les fichiers de piste (vous ne pouvez pas faire suivre les répertoires vides), mais les modèles dans .hgignore sont tout simplement de l'exécuter sur les chaînes du fichier des chemins relatifs à la racine du dépôt. La très même les chemins d'accès relatifs qu'il vous montre lorsque vous exécutez
hg status
. Donc, il ne le travail, comment vous dites que vous voulez que cela fonctionne parce que les lignes suivantes sont une partie intégrante de mon propre .hgignore fichiers:Encore une fois, lorsque vous exécutez
hg status
et il montre une .suo fichier, ce caractère est au début de cette ligne? Est-il unM
,A
,R
,!
ou?
personnage? Quel est le chemin après il?hg remove
) est équivalent àhg forget
et d'un système de fichiers supprimer.Mercurial utilise des entrées dans un fichier appelé
.hgignore
afin de déterminer quels fichiers il ignore complètement. Il est normalement situé dans le dossier racine de votre dépôt (et pas dans le .hg répertoire, que l'on pourrait penser).Vous pouvez en savoir plus ici:
http://www.selenic.com/mercurial/hgignore.5.html
Normalement, nous utilisons la syntaxe d'expression régulière pour s'assurer que le cas n'est pas un facteur dans les extensions:
De cette façon, il s'assure que, même si, pour une raison quelconque, le cas de l'extension des changements, il est encore ignorée.
Exemple pour ignorer/exclure des fichiers avec .o extension:
devrait se traduire par
.*\.suo$
pour .suo extensions.J'ai utilisé cette méthode avec succès
Vérifier où .hgignore fichier se trouve et de s'assurer qu'il est soit dans $HOME ou dossier racine du projet. Cochez la case (vs cas) de l'extension. Je doute que si le filtrage est insensible à la casse.
edit: testé, le filtrage n'est PAS sensible à la casse. Par conséquent, ajouter "*.SUO" si vous voulez ignorer les fichiers avec ".SUO" extension.