¿Cómo mantener un proyecto hijo actualizado?

Hace más de cuatro años, creé un nuevo proyecto independiente basado en uno existente. Ambos estaban en repositorys SVN. El proyecto Child se personalizó y ambos proyectos evolucionaron de forma independiente durante los próximos años, pero todavía tienen muchos códigos comunes.

El año pasado, ambos repositorys de código migraron a Git. El código de proyecto secundario tiene less características y tiene less desarrollos que el nuevo proyecto, por lo que tiene sentido actualizarlo con algunas partes del código del padre.

Entonces, ¿cuál sería la forma de proceder para mantener ambos proyectos (parcialmente) sincronizados?

¡Gracias!

Tienes dos proyectos divergentes . Realmente no puedes hacer lo que intentas hacer con el control de versiones.

En su lugar, destine las piezas compartidas en una biblioteca almacenada en un tercer repository y luego use los mecanismos de reutilización de código que admite su lenguaje (DLL, Ruby Gems, modules Perl, lo que sea) para include los bits compartidos en cada proyecto.

Una vez más, esto simplemente no es el trabajo para el control de versiones, y vas a pasar un mal momento tratando de hacer esto con un sistema de control de versiones.

Depende un poco del tipo de proyecto que sea. Si pudieras mover un código común de ambos proyectos a un repository de Git separado (solo para el código común), podrías usar submodules para integrar ese código común en los proyectos específicos. De esta forma, solo tienes un lugar (separado) para trabajar en el código común, y ambos proyectos pueden decidir incorporar esos cambios y build cosas sobre él.

Otra opción es mover ambos proyectos en un único repository. Esto sería aplicable, si ambos proyectos son muy similares (por ejemplo, después de actualizar el proyecto hijo para que coincida con su padre más). Entonces, el proyecto de su hijo sería solo una twig separada que puede incorporar cambios por separado. Esto también le permitirá incorporar los cambios del proyecto del niño al padre en caso de que sea útil.