Mi empresa está buscando desarrollar y lanzar un proyecto de software de código abierto junto con una versión mejorada patentada, similar a VirtualBox anterior a la 4.0.
¿Cuál es la mejor manera de mantener las dos bases de código de modo que los cambios en la versión de código abierto se puedan incorporar fácilmente a la versión comercial con un riesgo mínimo de introducir accidentalmente código propietario en el producto de código abierto?

Control de fuente y ramificación
La raíz sería el código común a ambas distribuciones. También (presumiblemente) crearía dos ramas desde su raíz:
Open SourceClosed SourceOpen Sourceprobablemente reflejaría su raíz en este escenario. De forma regular, se fusionaríaOpen SourceyClosed Sourcea mano (Closed Sourceprobablemente no obtendría tantas actualizaciones).De esta manera, puede mantener las mejoras en su
Closed Sourcesucursal y obtener nuevos cambios de la versión de código abierto.fuente
Depende de la licencia de código abierto que no se menciona en la pregunta. GPL da la mayoría de los problemas a este respecto y cualquier enlace estático o enlace de tiempo de ejecución es sospechoso.
Lea las preguntas frecuentes para obtener los mejores resultados; No confíes en otras respuestas. El uso de complementos no es realmente legítimo. Muchos productos comerciales violan la GPL de diferentes maneras y básicamente miran para otro lado.
http://www.gnu.org/licenses/gpl-faq.html
fuente