Cómo ignorar los archivos en Kiln/Mercurial usando Tortoise Hg "que son parte del repositorio"

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

Pregunta

Usamos Tortoise HG con horno. En mi proyecto VS 2010 C# hay algunos archivos que forman parte del repositorio, pero me gustaría que Tortoise HG los ignore cuando me compromete. Para por ejemplo, digamos en una pantalla de inicio de sesión, puedo codificar el ID de usuario, contraseña para probar. Realmente no quiero que se considere este archivo durante una confirmación. Entiendo el archivo .hgignore, pero esto realmente funciona para archivos que no son parte del repositorio. Cualquier truco en Tortoise HG para Ignorar archivos que forman parte del repositorio ? (Por lo tanto, no aparecen como modificado (m) durante una confirmación). Gracias

¿Fue útil?

Solución

Siempre uso una combinación de .hgignore y BeforeBuild (En el archivo .csproj) para cosas como esta.

En uno de mis proyectos de mascotas, tengo la siguiente configuración:

App.config Contiene mi identificación de usuario y contraseña verdadera para las pruebas.
App.config.example es idéntico, pero con datos falsos como "dummy_user" y "dummy_pw".

App.config es no parte del repositorio, y se ignora (en .hgignore).
App.config.example es parte del repositorio.

Entonces, tengo lo siguiente en el BeforeBuild objetivo en el archivo .csproj de mi solución:

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

Todo esto juntos tiene el siguiente efecto:

  • El archivo de configuración con los datos reales nunca se puede comprometer accidentalmente con el repositorio, porque se ignora
  • El repositorio solo contiene el archivo de configuración con los datos de ejemplo
  • Si alguien más clama el repositorio de su máquina, no tendrá el archivo de configuración "real" ... pero si falta, se creará automáticamente antes de la primera compilación por Visual Studio / MSBuild simplemente copiando el .example Archivo (y luego él puede poner su datos de inicio de sesión reales en el recién creado App.config expediente).
  • Si una App.config Con datos de usuario verdaderos codificados ya existe, no se sobrescribirá cuando se construya porque el evento BeforeBuild solo sucederá si App.config lo hace no ya existe

Otros consejos

La respuesta de Christian es la correcta, pero quiero mencionar que Tortoisehg apoya lo que quieres con su Lista de exclusión automática.

Un problema con una lista de exclusión es que no puede funcionar con las fusiones: debe cometer todos los archivos cuando se fusione y, por lo tanto, tendrá que bailar un poco con Shelve, Fusionar, Commit y Unshelve.

Cuando realiza una confirmación de tortoisehg, hay una lista de archivos con casillas de verificación por ellos. Deseleccionar los archivos que no desea que se comprenda.

O, en la línea de comando, confirme el formulario hg commit --exclude "pattern", donde el patrón se define en la página del hombre HG.

Siempre podrías usar HG Olvídate.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top