2008-11-26 20 views
6

Nunca he bifurcado un proyecto antes, así que estoy un poco perplejo en cuanto a cómo proceder. Tengo un proyecto que utilizo por mi cuenta que publico como un proyecto con licencia de BSD (Proyecto A). En el trabajo, quiero usar ese código pero con modificaciones específicas de nuestra empresa (Proyecto B), pero quiero poder seguir actualizando con las características que provienen del código base que lanzo.Proyecto de subversión de bifurcación

¿Cuál es la mejor manera de manejar dos bifurcaciones de un proyecto e incorporar cambios del Proyecto A en el Proyecto B sin sobreescribir las modificaciones que realizo en el Proyecto B?


Se está dividida en dos entidades con mi repo principal en Google Code y luego la versión de la compañía en nuestro propio repo interna. Mi pregunta es mantener todo en orden a medida que llega el momento de actualizar de versión a versión, pero manteniendo las modificaciones personalizadas.

Respuesta

3

Consulte la sección en The Subversion Book discussing "vendor branches" anteriormente mencionada. Esto explica cómo tratar con un subproyecto externo para que ambos puedan fusionarse en los cambios cuando se actualice el proyecto externo y fusionarse en sus propias modificaciones locales.

Este enfoque debería funcionar bien si trata la versión pública de su proyecto (alojada en Google Code) como la dependencia total en el código de su empresa.

1

En Subversion, 'bifurcar' es 'bifurcar', y 'Incorporar cambios' es 'fusionar'.

No creo que pueda escapar sin leer las secciones pertinentes de The Subversion book con bastante cuidado. Está muy claramente escrito y es fácil de entender una vez que te dedicas a hacerlo.

+0

Sí, eso sé :) Mi problema es tener dos repos separados en lugar de ramificar/fusionar todo dentro de uno. – dragonmantank

+0

No puede realizar una bifurcación, pero puede exportar la versión actual del proyecto y agregarla al otro repositorio (para que tenga una copia completamente nueva). Una vez allí, aún puede fusionarse entre ellos. – gbjbaanb

0

A menos que Work esté dispuesto a devolver esas modificaciones al proyecto original, comenzaría un nuevo proyecto SVN allí (Proyecto B). Luego, a medida que avance a su próximo lanzamiento del proyecto licenciado BSD (Proyecto A), puede hacer cambios desde el último lanzamiento y luego aplicarlos al Proyecto B.

Puede parecer un trastorno de personalidad múltiple, pero debes actuar como dos entidades diferentes dependiendo de dónde te encuentres (Palabra o Hogar).

IFF por otro lado El trabajo está dispuesto a liberar esas modificaciones al proyecto original, entonces su mejor opción es hacer una sucursal y combinar sus cambios al Proyecto A en el Projet B (periódicamente).

Cuestiones relacionadas