comment ignorer les fichiers « qui font partie du dépôt » dans four / mercurial en utilisant hg tortue

StackOverflow https://stackoverflow.com/questions/7351076

Question

Nous utilisons tortoisehg avec Kiln. Dans mon vs 2010 c # projet il y a des fichiers qui font partie du dépôt, mais je voudrais tortoisehg de les ignorer quand je fais une livraison. Pour exemple., Par exemple dans un écran de connexion je peux coder en dur l'ID utilisateur, mot de passe pour les tests. Je ne veux pas vraiment ce fichier considéré au cours d'une validation. Je comprends .hgignore fichier, mais cela fonctionne vraiment pour les fichiers qui ne font pas partie de la pension. Toute astuce en tortoisehg à ignorer les fichiers qui font partie du repo ? (Afin qu'ils ne se présentent pas modifié (M) au cours d'une validation.) Grâce

Était-ce utile?

La solution

J'utilise toujours une combinaison de .hgignore et BeforeBuild (dans le fichier .csproj) pour des choses comme cela.

Dans un de mes projets pour animaux de compagnie, j'ai la configuration suivante:

App.config contient mon vrai nom d'utilisateur et mot de passe hardcoded pour tester.
App.config.example est identique, mais avec des données fausses comme "dummy_user" et "dummy_pw".

App.config pas une partie du dépôt, et elle est ignorée (en .hgignore).
App.config.example fait partie du dépôt.

Alors, je suit dans la cible de BeforeBuild dans le fichier .csproj de ma solution:

<Target Name="BeforeBuild">
  <Copy
    Condition="!Exists('App.config')"
    SourceFiles="App.config.example" 
    DestinationFiles="App.config"/>
</Target>

Tout cela ensemble a l'effet suivant:

  • le fichier de configuration avec les données réelles ne peut jamais être accidentellement archivé dans le serveur, car il est ignoré
  • le dépôt ne contient que le fichier de configuration avec les données par exemple
  • si quelqu'un d'autre le dépôt des clones de sa machine, il n'aura pas le fichier de configuration « vrai » ... mais s'il manque, il sera automatiquement créé avant la première version de Visual Studio / MSBuild en copiant simplement le fichier .example (et alors il peut simplement mettre son données de connexion réelles dans le fichier App.config nouvellement créé).
  • si un App.config avec des données réelles de l'utilisateur hardcoded existe déjà, il ne sera pas écrasé lors de la construction parce que l'événement BeforeBuild ne se produira que si App.config ne pas existe déjà

Autres conseils

La réponse de Christian est la bonne, mais je tiens à mentionner que les supports tortoisehg ce que vous voulez avec leur Auto la liste des exclusions.

Un problème avec une liste d'exclusion est qu'il ne peut pas travailler avec des fusions: vous devez engager tous les fichiers lors de la fusion et de sorte que vous aurez à faire une petite danse avec shelve, fusion, engagement et unshelve

.

Quand vous faites un commit TortoiseHG, il y a une liste des fichiers avec des cases à cocher par eux. Désélectionner les fichiers que vous ne voulez pas comitted.

Ou, sur la ligne de commande, faire une validation de la forme hg commit --exclude "pattern", où motif est défini dans la page de manuel hg.

Vous pouvez toujours utiliser hg oublier .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top