Tengo que desarrollar dos proyectos de Django que comparten el 90% del mismo código, pero tienen algunas variaciones en varias aplicaciones, plantillas y dentro del mismo modelo.¿La mejor práctica para gestionar las variantes de proyectos en Git?
Estoy usando Git para control de origen distribuido.
Mis requisitos son que:
código común para ambos proyectos se desarrolla en un solo lugar (entorno de desarrollo de Proyecto1)
periódicamente esta se combina en el entorno de desarrollo del segundo proyecto (Project2)
las variaciones no se encapsulan fácilmente dentro de las aplicaciones. (Por ejemplo. Hay aplicaciones. Tales como "perfiles" que varían entre Proyecto1 y Project2 pero para los que también hay una evolución común en curso)
tanto Proyecto1 y Project2 tienen repositorios públicos, de modo que pueda colaborar con otros
similarmente Project1 y Project2 deberían tener servidores de desarrollo, demostración, almacenamiento en etapas y producción.
sin embargo, el repositorio público no está en el mismo servidor en ambos casos. Entonces, por ejemplo, cuando estoy desarrollando en Project1, quiero poder "empujar" a mi servidor github, pero no tengo material de Project2 yendo allí.
hay archivos tales como local_settings.py cuales son completamente diferentes entre Proyecto1 y Project2, pero deben compartirse entre varios desarrolladores de cada Proyecto
Entonces, ¿cuál es la mejor manera de manejar esta situación?
Lo que parece ser ideal sería algo así como un "tirón filtrado" donde en lugar de .gitignore diciendo "ignore este archivo por completo", puedo decir "ignore este archivo cuando saque de ese informe" No pude ver algo así en la documentación, pero ¿podría haber algo como eso?
Hola Macarse, he pensado en un repositorio común, pero no creo que sea suficiente. (Como en, todavía tendré que desarrollar (corrección de errores) en los repositorios Project1 y Project2 y desearé volver a aplicar las correcciones comunes al repositorio común. El problema es que quiero retroceder parcialmente, sin dejar de pensar que el el repositorio común está desactualizado ¿O es incorrecto? – interstar