Cómo ignorar los archivos en Kiln/Mercurial usando Tortoise Hg "que son parte del repositorio"
-
28-10-2019 - |
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
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 creadoApp.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á siApp.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.