7

¿Cuál es la mejor práctica para usar subversión (SVN) para administrar un proyecto que requiere un único archivo de configuración que tiene múltiples versiones simultáneas para diferentes entornos.Administración de Subversion de los archivos de configuración del proyecto

I.e.

  • El proyecto ABC se utiliza para tres entornos diferentes, que usan el mismo código, excepto por un archivo de configuración ligeramente modificado. Y
  • El Proyecto ABC también es desarrollado por múltiples desarrolladores, utilizando un archivo de configuración ligeramente modificado para cada desarrollador.

Soy consciente de que se podría utilizar una plantilla de archivo de configuración y svn: ignorar, pero me preguntaba si alguien podría describir las mejores prácticas para este enfoque y/o cualquier otra alternativa adecuada.

¡Gracias de antemano!

M.

Respuesta

3

No sé si esto es una "mejor práctica", pero esto es cómo manejar esto y funciona muy bien. Tengo varias aplicaciones y cada una tiene un archivo de configuración separado para sus entornos de producción, montaje y desarrollo. Las configuraciones se denominan web.config, stage.config y dev.config. Los tres se mantienen bajo control de versión. La aplicación espera y usa web.config para recuperar las configuraciones. Como parte de nuestros scripts de construcción e implementación de NANT llamados por cruise control, dependiendo del entorno en el que se implemente, la configuración apropiada se renombra a web.config y se implementa.

Espero que esto ayude.

+0

En segundo lugar esto. Además, una pequeña permutación de ese método que se puede usar si hay muy pocas diferencias entre los archivos de configuración (es decir, un par de sentencias SQL y una par de configuraciones de aplicaciones) es almacenar los cambios en el script de compilación, y usar el xmlpoke de NAnt para actualizar a la cadena de conexión adecuada. Luego puede mantener la creación de scripts en su propio repositorio y mantener las contraseñas de producción separadas de su base de código. –

1

Mantener múltiples archivos en el control de la fuente puede ser complicado. Usamos una herramienta de configuración de preparación casera que lee una variable de entorno del sistema y de ella lee un archivo de configuración coincidente y luego modifica un archivo de configuración compartido. No puedo decir que sea una gran solución, pero funciona.

0

Durante años, y muchos proyectos diferentes y exitosos, simplemente no actualizo el sistema o el archivo de configuración específico del desarrollador. A veces es solo información de acceso a la base de datos, o algunas rutas vitales o lo que sea. Acórtelo lo menos posible. No te sientas mal por no versionar esa información. Esto se ha hecho con cada número entre 2 y 5 desarrolladores en varios proyectos y nunca ha causado confusión, problemas o debates en proyectos del mundo real.

0

En mi opinión, no sirve de nada mantener todos los archivos de configuartion bajo control de versión. En uno de mis proyectos teníamos archivos de configuración que se crearon con cmake para varias plataformas (desde la misma plantilla). Cada desarrollador de nuestro equipo tenía su propia secuencia de comandos personalizada para crear las configuraciones necesarias.

+0

pero si nunca has enviado ningún archivo de configuración bajo el control de vesion, ¿cómo estás de acuerdo con cuál es el predeterminado? al menos no necesitas una predeterminada para ser la plantilla? – sivabudh

Cuestiones relacionadas