La mia azienda (chiamiamoli Acme Technology) ha una libreria di circa mille file sorgente che originariamente proveniva dal suo gruppo di ricerca Acme Labs, incubata in un gruppo di sviluppo per un paio di anni, e più recentemente è stata fornita a una manciata dei clienti in caso di non divulgazione. Acme si sta preparando a rilasciare forse il 75% del codice per la 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 alle innovazioni future di cui hanno bisogno per tenersi fuori dalla concorrenza.
Il codice è attualmente formattato con #ifdefs che consente alla stessa base di codice di lavorare con le piattaforme di preproduzione che saranno disponibili per i ricercatori universitari e una gamma molto più ampia di clienti commerciali una volta che sarà disponibile per l'open source, mentre al Allo stesso tempo è disponibile per la sperimentazione e la prototipazione e test di compatibilità diretta con la piattaforma futura. Mantenere un singolo codice base è considerato essenziale per l'economia (e sanità) del mio gruppo che avrebbe difficoltà a mantenere due copie in parallelo.
I file nella nostra base attuale hanno un aspetto simile al seguente:
> // 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 di simile a:
> // GPL Copyright (C) Acme Technology Labs 2012, Some rights reserved.
> // Acme appreciates your interest in its technology, please contact [email protected]
> // for technical support, and www.acme.com/emergingTech for updates and RSS feed.
>
> ... Usual header stuff...
>
> void initTechnologyLibrary() {
> nuiInterface(on);
> }
C'è uno strumento, una libreria di analisi o uno script popolare che può sostituire il copyright e rimuovere non solo #ifdefs, ma varianti come #if definito (UNDER_RESEARCH), ecc.?
Il codice è attualmente in Git e probabilmente sarà ospitato da qualche parte che usa Git. Ci sarebbe un modo per collegare in modo sicuro gli archivi in modo da poter reintegrare in modo efficiente i nostri miglioramenti con le versioni open source? Consigli su altre insidie sono i benvenuti.