我公司(简称为Acme Technology)拥有大约一千个源文件库,这些文件最初来自其Acme Labs研究小组,在一个开发小组中孵化了几年,最近已提供给少数客户。非公开。Acme已准备好向开源社区发布大约75%的代码。其余25%将在以后发布,但是目前,要么尚未准备好供客户使用,要么包含与未来创新相关的代码,他们需要将这些创新保持在竞争对手的控制之下。
目前,该代码已使用#ifdefs格式化,该代码库允许相同的代码库与预生产平台一起使用,一旦开源,该研究平台将可供大学研究人员和更广泛的商业客户使用,同时可用于实验和原型设计以及与未来平台的向前兼容性测试。对于我们小组的经济(和理智)而言,保持单一代码库被认为是至关重要的,因为他们很难同时维护两个副本。
当前库中的文件如下所示:
> // 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
> }
我们希望将它们转换为:
> // 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);
> }
是否有工具,解析库或流行的脚本可以替代版权并不仅去除#ifdefs,还可以去除诸如#ifdefined(UNDER_RESEARCH)之类的变体?
该代码当前位于Git中,并且很可能托管在使用Git的地方。是否有一种方法可以将存储库安全地链接在一起,以便我们可以将改进与开源版本有效地重新集成在一起?欢迎提供其他陷阱的建议。