Question

Est-il possible d'ignorer les modifications à certains fichiers sur un commit avec Mercurial?

J'ai une situation particulière où nous avons un oracle par défaut fichier tnsnames.ora qui pointe vers 127.0.0.1, mais certains développeurs modifierai pour pointer vers d'autres systèmes, mais nous ne voulons pas changer le fichier par défaut .

Dans la subversion, j'ai simplement ajouté à la validation ignore-on-changelist. Est-il possible de le faire dans Mercurial?

Était-ce utile?

La solution

Si les fichiers que vous souhaitez omettre de la commande « hg commit » sont déjà « suivi », vous devez utiliser l'option -X. Le modèle est passé à -X est assez souple, permettant d'exécuter 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 un fichier avec une extension « .conf », quelle que soit la profondeur dans l'arbre source, il vit. Dans l'espace de travail ci-dessus cela engagerait "src / bar.c" et "lib / libbar / loader.c" mais pas "etc / foo.conf".

Pour exclure plusieurs modèles de noms de fichiers, utilisez plusieurs options -X, i.e.:.

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

Autres conseils

Traditionnellement, ce problème résolu en ne versioning le fichier lui-même, mais par versioning une copie de celui-ci comme modèle pour les autres à utiliser.

Alors vous hg mv tnsnames.ora tnsnames.ora-template, puis engager, puis faire une copie du système de fichiers directement de tnsnames.ora-modèle pour tnsnames.ora et ajouter tnsnames.ora au fichier .hgignore.

Toute modification ultérieure du modèle seront encore repoussées, mais ils changeront pas vraiment l'environnement de travail à moins que quelqu'un copie le modèle du fichier réel.

Vous pouvez alias engager à quelque chose comme « hg commit -X excluded_file.ext » Je ne l'ai jamais utilisé mercurial, donc je vais juste par la page de manuel ici.

Recherchez .hgignore fichier dans la documentation de Mercurial.

est un exemple ici ignorer le fichier.

       # use glob syntax.
       syntax: glob

       *.elc
       *.pyc
       *~

       # switch to regexp syntax.
       syntax: regexp
       ^\.pc/
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top