38 votes

Existe-t-il une option ignore-on-commit dans mercurial?

Existe-t-il un moyen d'ignorer les modifications apportées à certains fichiers d'un commit avec mercurial?

J'ai un cas spécifique où nous avons un fichier oracle tnsnames.ora par défaut qui pointe vers 127.0.0.1, mais certains développeurs le modifieront pour qu'il pointe vers d'autres systèmes, mais nous ne voulons pas modifier le fichier par défaut.

Dans Subversion, j'ai simplement ajouté ceci à la liste de modifications ignore-on-commit. Y at-il un moyen de faire cela dans Mercurial?

50voto

Giorgos Keramidas Points 1243

Si les fichiers que vous souhaitez supprimer, dans la "hg commit de la commande" sont déjà "suivi", vous devez utiliser l'option-X. Le modèle adopté pour -X est assez flexible, permettant de faire tourner par exemple:

% hg stat
A etc/foo.conf
M src/bar.c
M lib/libbar/loader.c
% hg commit -X '**.conf'

pour éviter de commettre n'importe quel fichier avec un ".conf" extension, indépendamment de la façon dont profondément dans l'arbre source de vie. Dans l'espace de travail indiqué ci-dessus ce serait commettre "src/bar.c" et "lib/libbar/chargeur.c" mais pas "etc/foo.conf".

Pour exclure plusieurs modèles de noms de fichiers, l'utilisation de plusieurs -X options, à savoir:

% hg commit -X '**.conf' -X '**.sh'

22voto

Zed Points 1571

Traditionnellement, le problème est résolu non pas par version du fichier, mais par copie d’une copie de celui-ci en tant que modèle à utiliser par d’autres.

Vous devez donc hg mv tnsnames.ora tnsnames.ora-template , puis valider, puis faire une copie directe du système de fichiers de tnsnames.ora-template sur tnsnames.ora et ajouter tnsnames.ora au fichier .hgignore.

Les modifications ultérieures apportées au modèle seront toujours rejetées, mais elles ne modifieront pas l'environnement de travail à moins que quelqu'un ne copie le modèle dans le fichier réel.

1voto

Josh Matthews Points 4026

Vous pouvez aussi commettre alias "hg commit -X excluded_file.ext". Je n'ai jamais utilisé mercurial, je me fie donc à la page de manuel ici.

0voto

Craig McQueen Points 13194

-2voto

0x6adb015 Points 1498

Recherchez le fichier .hgignore dans la documentation de Mercurial.

Voici un exemple de fichier à ignorer.

        # use glob syntax.
       syntax: glob

       *.elc
       *.pyc
       *~

       # switch to regexp syntax.
       syntax: regexp
       ^\.pc/
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X