La mia azienda (chiamiamoli Acme Technology) ha una libreria di circa un migliaio di file di origine originari del gruppo di ricerca Acme Labs, incubati in un gruppo di sviluppo per un paio d'anni e più recentemente sono stati forniti a una manciata di clienti non divulgazione. Acme si sta preparando a rilasciare forse il 75% del codice alla comunità open source. L'altro 25% verrebbe rilasciato in seguito, ma per ora non è pronto per l'uso da parte dei clienti o contiene codice relativo a innovazioni future che devono tenere fuori dalle mani della concorrenza.
Il codice è attualmente formattato con #ifdefs che consente alla stessa base di codice di lavorare con le piattaforme di pre-produzione che saranno disponibili per i ricercatori universitari e una gamma molto più ampia di clienti commerciali una volta che passano all'open source, mentre allo stesso tempo sono disponibile per sperimentazione e prototipazione e test di compatibilità con la futura piattaforma. Mantenere una singola base di codice è considerato essenziale per l'economia (e la sanità mentale) del mio gruppo che farebbe fatica a mantenere due copie in parallelo.
I file nella nostra base attuale assomigliano a questo:
> // 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 vorremmo convertirli in qualcosa del tipo:
> // 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);
> }
Esiste uno strumento, una libreria di analisi o uno script popolare che può sostituire il copyright e rimuovere non solo #ifdefs, ma varianti come #if definite (UNDER_RESEARCH), ecc.?
Il codice è attualmente in Git e probabilmente sarebbe ospitato da qualche parte che utilizza Git. Ci sarebbe un modo per collegare in modo sicuro i repository in modo da poter reintegrare in modo efficiente i nostri miglioramenti con le versioni open source? I consigli su altre insidie sono ben accetti.