Şirketim (onlara Acme Technology diyelim) başlangıçta Acme Labs araştırma grubundan gelen, birkaç yıl boyunca bir geliştirme grubunda inkübe edilen ve daha yakın zamanda bir avuç müşteriye sağlanan yaklaşık bin kaynak dosyadan oluşan bir kütüphaneye sahip ifşa. Acme, kodun belki de% 75'ini açık kaynak topluluğuna bırakmaya hazırlanıyor. Diğer% 25 daha sonra piyasaya sürülecek, ancak şimdilik ya müşteri kullanımına hazır değil ya da rakiplerin elinden uzak tutmak için gelecekteki yeniliklerle ilgili kod içeriyor.
Kod şu anda, aynı kod tabanının üniversite araştırmacıları ve açık kaynak koduna girildikten sonra çok daha fazla ticari müşteri için kullanılabilecek üretim öncesi platformlarla çalışmasına izin veren #ifdefs ile biçimlendirilmiştir. gelecekteki platformla deneme ve prototip oluşturma ve ileri uyumluluk testi için kullanılabilir. Tek bir kod tabanı tutmak, iki kopyayı paralel olarak tutmakta zorlanacak olan grubumun ekonomisi (ve akıl sağlığı) için gerekli kabul edilir.
Mevcut tabanımızdaki dosyalar şöyle görünür:
> // 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
> }
Ve bunları şöyle bir şeye dönüştürmek istiyoruz:
> // 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);
> }
Telif hakkı yerine yalnızca #ifdefs değil, #if tanımlı (UNDER_RESEARCH) gibi varyasyonları değiştirebilen bir araç, ayrıştırma kitaplığı veya popüler komut dosyası var mı?
Kod şu anda Git'te ve büyük olasılıkla Git kullanan bir yerde barındırılıyor. Açık kaynak sürümleriyle iyileştirmelerimizi verimli bir şekilde yeniden entegre edebilmemiz için depoları güvenli bir şekilde birbirine bağlamanın bir yolu var mı? Diğer tuzaklar hakkında tavsiye edilir.