Mejores prácticas: Git + Automatización de compilación: mantener las configuraciones separadas

Resuelto Dmitri Farkov asked hace 10 años • 1 respuestas

Buscando el mejor enfoque para mantener mis archivos de configuración separados, pero sin introducir pasos adicionales para los nuevos desarrolladores que configuran sus entornos.

Supongo que un submódulo sería suficiente para hacer el trabajo, pero entonces, ¿cómo cambiaría las configuraciones sin problemas dependiendo de la tarea en cuestión, es decir, ingresar la configuración DEV con regularidad, extraer la rama PROD del repositorio de configuración durante la compilación?

Necesita ser:

  • Fácil e indoloro para nuevos desarrolladores.
  • Los archivos de configuración PROD solo deben ser accesibles para usuarios seleccionados + usuario de compilación.

Gracias de antemano.

Dmitri Farkov avatar Dec 29 '13 11:12 Dmitri Farkov
Aceptado

Esto se llama controlador de filtro de contenido y le permite declarar, en un .gitattributesarchivo (y solo para su tipo de archivos de configuración) un script de difuminado que se ejecutará automáticamente al finalizar la compra :

  • combinar un archivo de plantilla de archivo de configuración ( config.tpl)
  • con el valor correcto del archivo de configuración ( config.dev,, config.prod...)
  • para producir un archivo de configuración sin versión (archivo privado)

filtro de manchas

Consulte " Personalizar Git - Atributos de Git ":

echo '*.cfg.tpl filter=config' >> .gitattributes
git config --global filter.config.smudge yourScript

Con ese enfoque, no necesita submódulos, pero puede generar tantos archivos de configuración como necesite dependiendo de su entorno, como por ejemplo su rama:
un poco como en " Buscar el nombre de la rama de Git en el enlace posterior a la actualización ", su mancha El script puede averiguar en qué rama se está ejecutando actualmente:

#!/bin/sh
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
VonC avatar Dec 29 '2013 07:12 VonC