Pregunta

En el servidor SVN, hay un archivo llamado config.conf . Tengo una versión local llamada lo mismo (en el mismo lugar). ¿Cómo puedo asegurarme de que mi configuración local no se sobrescriba ni se registra?

Mientras estoy aquí, ¿la respuesta es diferente para un directorio?

Estoy usando Tortoise SVN, pero las respuestas de la línea de comandos son geniales.

¡Gracias!

[Lo siento si esta pregunta básica se ha hecho antes ... Lo busqué pero no la encontré.]

¿Fue útil?

Solución

SVN siempre pensará que ese archivo es parte del repositorio si le asignas el mismo nombre y lo pegas en el mismo directorio. Tus opciones son

  • Cámbiele el nombre (tal vez escriba un script de shell en mv config.conf config.conf.theirs & amp; & amp; mv config.conf.mine config.conf y luego ejecute su aplicación)
  • Muévelo. Tal vez agregue algo de lógica a su aplicación que verifique si config.conf se encuentra en un directorio local específico del usuario y luego usa el config.conf predeterminado si no se encuentra ninguno

Otros consejos

TortoiseSVN tiene una buena respuesta para la mitad de este problema: ignore-on-commit

Esto le impide cometer accidentalmente " solo local " cambia, pero no resuelve el problema al actualizar accidentalmente un archivo modificado localmente.

Consulte esta publicación del blog para obtener información detallada sobre cómo:

http: //blog.baljeetsingh. net / 2009/02 / tips-tricks-svn-ignore-on-commit.html

  1. exclúyalo del repositorio con svn: ignore (primero deberá eliminarlo del repositorio)
  2. mantener una copia en config.conf.default con valores de marcador de posición. Puede mantener la copia predeterminada en el repositorio.
  3. use config.conf como de costumbre, subversion no lo verá más

Gracias a todos. Pensé que Eoin podría estar enojado, pero en realidad es cierto. No puede ignorar un archivo que está en el control de versiones.

Según los documentos de la tortuga

  

Ignorar elementos versionados

     

Los archivos y carpetas versionados nunca pueden   ser ignorado, esa es una característica de   Subversión. Si versionó un archivo por   error, lea la sección llamada   & # 8220; Ignorar archivos que ya están   versionado & # 8221; para obtener instrucciones sobre cómo   & # 8220; conversión & # 8221;

Y de los documentos SVN

  

Tengo un archivo en mi proyecto que cada   el desarrollador debe cambiar, pero yo no   quiere que esas modificaciones locales sean alguna vez   comprometido. ¿Cómo puedo hacer 'svn commit'   ignorar el archivo?

     

La respuesta es: no pongas ese archivo   bajo control de versiones. En cambio, pon un   plantilla del archivo bajo versión   control, algo como " file.tmpl " ;.

     

Luego, después del 'svn inicial   pago ', haga que sus usuarios (o su   sistema de compilación) haga una copia normal del sistema operativo de   la plantilla al nombre de archivo apropiado,   y haga que los usuarios personalicen la copia. los   el archivo no está versionado, por lo que nunca   estar comprometido Y si lo deseas, puedes   agregar el archivo a su directorio principal   svn: ignora la propiedad, por lo que no   aparecer como '?' en el 'estado de svn'   comando.

Esto es terriblemente molesto ... Supongo que tendré que tener cuidado con ese archivo y hacer una copia de seguridad de mi propia configuración (que puedo ignorar).

Gracias a todos por sus respuestas.

Puedes agregar un atributo svn-ignore: a tu carpeta local que excluya config.conf o incluso * .conf

Pero creo que tendría que excluir completamente este archivo de SVN, es decir, si ya se ha registrado en el repositorio, primero deberá eliminarlo del repositorio

Cuando hay una subversión con archivos de configuración, he encontrado muy útil tener un tronco completo dedicado a él. ¿Por qué? La mayoría porque simplemente puede tener dos copias de repositorio local, una para usos locales, una para cambios remotos.

Me gusta esto:

/ workdir / configuration [es un enlace a / workdir / conf_local]
/ workdir / conf_local [mantener la configuración local actualizada pero no cambiar mi configuración]
/ workdir / conf_remote [siempre actualizado con datos remotos, así puedo confirmar los cambios]

No sé qué tipo de configuración tiene, o si esto es aplicable a cualquier idioma que esté utilizando, pero esta es la forma en que lo hago con sitios web y PHP.

Primero, crea una configuración predeterminada, que probablemente tiene valores ingenuos que no funcionarán para el 90% de las configuraciones, pero le da una referencia de qué valores hay y qué se puede configurar realmente. Este script generalmente se llama ' config.default.php ' o algo similar. Al final de este script hay algo que sintonizar con:

if (file_exists("config.php")) require "config.php";

Lógica simple. Si hay una anulación de usuario para el archivo de configuración, luego cárguelo y deje que anule lo que sea necesario. Luego, simplemente mantenga este archivo de configuración de usuario ignorado a través de los métodos ya explicados en todas las máquinas de desarrollo, y cualquier máquina de producción que mantenga un pago de svn por cualquier razón. Esta es una configuración muy flexible, y se podrían configurar procedimientos similares para la mayoría de los idiomas / entornos.

como señaló Scrappydog

Puede usar / crear diferentes listas en el cuadro de diálogo de confirmación

admite la lista ignorar sobre confirmación , de esta manera los archivos que se encuentran debajo de esta lista no serán visibles.

puede consultar este enlace de blog para más detalles.

http: //blog.baljeetsingh .net / 2009/02 / tips-tricks-svn-ignore-on-commit.html

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