El file Mercurial Prevent cambia

Posible duplicado:
Mercurial: cómo ignorar los cambios en un file rastreado

Trabajo en un equipo que usa Mercurial y tenemos un file de configuration que está registrado y es estable.

Como se trata de un file de configuration, algunos miembros del equipo deben realizar cambios para que el software funcione en su máquina, pero quiero evitar que esos cambios entren en el repository al registrarse.

¿Cómo puedo hacer esto?

Quiero que el file de configuration pnetworkingeterminado esté en el repository y que los cambios realizados por el usuario sean ignorados en la confirmación.

El patrón general es eliminar el file de config del repository y agregarlo a .hgignore , y en su lugar proporcionar un file config.example que los usuarios deben copyr para config y personalizar. Esta copy se puede hacer mediante el script de compilation si desea mantener la configuration del proyecto lo más simple posible.

Ver también los enlaces publicados por kostja.

Es posible que desee echar un vistazo a preguntas similares (preguntas similares para git y svn): Git – Archivos de configuration específicos de la máquina que se compromete y cómo controlar los files de configuration de control de forma pragmática. .

Tenga en count que no responden su pregunta directamente, sino que brindan algunas de las mejores prácticas para eludir el problema.

En un proyecto actual, decidimos utilizar templates bajo control de versiones (como template.properties ) y modificarlas para uso local como ( local.properties ) e ignorar los files modificados. Este es el enfoque más robusto.

En otro proyecto, tomamos un enfoque diferente, con un file separado por desarrollador ( {activeDirectoryLogin}.properties} ). El file apropiado se selecciona automáticamente según el usuario actual. Este enfoque tiene sus desventajas, que afortunadamente pudimos descuidar, ya que contamos con un equipo bastante pequeño y estable de 5 desarrolladores co-ubicados durante la duración del proyecto. Lo bueno es que los desarrolladores conocen las preferences de los demás y pueden reproducir rápidamente cualquier posible problema. Además, la configuration se puede evaluar fácilmente en diferentes sistemas.

No puedes. No debe rastrear los files que deben cambiarse en copys locales, seguir una plantilla en su lugar (o revisar su sistema de configuration para permitir que el file de configuration local anule el pnetworkingeterminado).

Debería agregar un gancho para hacer esto:

http://www.selenic.com/mercurial/hgrc.5.html#hooks

El enganche podría ser del lado del server (lo que no impediría la confirmación, pero evitaría llevar ese cambio a su repository del lado del server), o del lado del cliente (lo que podría evitar la confirmación, pero el gancho tendría que instalarse localmente) por cada desarrollador).

Puede usar la extensión MQ con un pequeño complemento para sus requerimientos: los cambios específicos del usuario se almacenan dentro de mq-patches y no dentro del set de cambios de permanent-repo. Es decir, el usuario puede cambiar la configuration básica, pero es su tarea actualizar el parche en MQ y no confirmar los cambios como un set de cambios común.