Minha empresa (vamos chamá-los de Tecnologia Acme) possui uma biblioteca de aproximadamente mil arquivos de origem originários de seu grupo de pesquisa Acme Labs, incubados em um grupo de desenvolvimento por alguns anos e, mais recentemente, foram fornecidos a alguns clientes sob não divulgação. A Acme está se preparando para liberar talvez 75% do código para a comunidade de código aberto. Os outros 25% seriam lançados mais tarde, mas, por enquanto, não estão prontos para uso do cliente ou contêm código relacionado a inovações futuras que precisam manter fora das mãos dos concorrentes.
Atualmente, o código está formatado com #ifdefs, que permite que a mesma base de código funcione com as plataformas de pré-produção que estarão disponíveis para pesquisadores universitários e para uma gama muito maior de clientes comerciais, uma vez que eles acessam o código aberto e, ao mesmo tempo, disponível para experimentação e prototipagem e teste de compatibilidade com a futura plataforma. Manter uma única base de código é considerado essencial para a economia (e a sanidade) do meu grupo, que teria dificuldade em manter duas cópias em paralelo.
Os arquivos em nossa base atual são mais ou menos assim:
> // 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
> }
E gostaríamos de convertê-los para 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 uma ferramenta, biblioteca de análise ou script popular que possa substituir os direitos autorais e remover não apenas #ifdefs, mas variações como #if definido (UNDER_RESEARCH) etc.?
Atualmente, o código está no Git e provavelmente seria hospedado em algum lugar que use o Git. Haveria uma maneira de vincular repositórios com segurança para que possamos reintegrar com eficiência nossas melhorias com as versões de código aberto? Conselhos sobre outras armadilhas são bem-vindos.