Mi compañía (llamémosles Acme Technology) tiene una biblioteca de aproximadamente mil archivos fuente que originalmente provino de su grupo de investigación Acme Labs, incubados en un grupo de desarrollo durante un par de años, y recientemente se han proporcionado a un puñado de clientes bajo no divulgación Acme se está preparando para lanzar quizás el 75% del código a la comunidad de código abierto. El otro 25% se lanzaría más tarde, pero por ahora, no está listo para el uso del cliente o contiene código relacionado con las innovaciones futuras que deben mantener fuera del alcance de los competidores.
El código está formateado actualmente con #ifdefs que permiten que la misma base de código trabaje con las plataformas de preproducción que estarán disponibles para los investigadores universitarios y una gama mucho más amplia de clientes comerciales una vez que vaya a código abierto, mientras que al mismo tiempo disponible para experimentación y creación de prototipos y pruebas de compatibilidad con la futura plataforma. Mantener una sola base de código se considera esencial para la economía (y la cordura) de mi grupo, que tendría dificultades para mantener dos copias en paralelo.
Los archivos en nuestra base actual se ven más o menos así:
> // Copyright 2012 (C) Acme Technology, All Rights Reserved.
> // Very large, often varied and restrictive copyright license in English and French,
> // sometimes also embedded in make files and shell scripts with varied
> // comment styles.
>
>
> ... Usual header stuff...
>
> void initTechnologyLibrary() {
> nuiInterface(on);
> #ifdef UNDER_RESEARCH
> holographicVisualization(on);
> #endif
> }
Y nos gustaría convertirlos en algo como:
> // GPL Copyright (C) Acme Technology Labs 2012, Some rights reserved.
> // Acme appreciates your interest in its technology, please contact xyz@acme.com
> // for technical support, and www.acme.com/emergingTech for updates and RSS feed.
>
> ... Usual header stuff...
>
> void initTechnologyLibrary() {
> nuiInterface(on);
> }
¿Existe una herramienta, una biblioteca de análisis o un script popular que pueda reemplazar el copyright y eliminar no solo #ifdefs, sino variaciones como #if definido (UNDER_RESEARCH), etc.?
El código está actualmente en Git y probablemente estaría alojado en algún lugar que use Git. ¿Habría una manera de vincular los repositorios de manera segura para que podamos reintegrar de manera eficiente nuestras mejoras con las versiones de código abierto? Cualquier consejo sobre otras trampas es bienvenido.