假设我有一个名为“Hammerstein”的尚未发布的软件产品的巨大存储库,由著名的德国软件公司“Apfel”编写,我是该公司的员工。
有一天,“Apfel”分拆了 Hammerstein 部门并将其出售给更著名的公司“Oráculo”,该公司出于民族自豪感将“Hammerstein”重命名为“Reineta”并决定将其开源。
协议要求在存储库中将所有对“Hammerstein”和“Apfel”的引用替换为“Oráculo”和“Reineta”。
所有文件名,所有提交消息,所有内容都必须替换。
因此,例如:
src/core/ApfelCore/main.cpp
必须成为src/core/OraculoCore/main.cpp
。说的commit message
"Add support for Apfel Groupware Server"
必须变成"Add support for Oraculo Groupware Server"
字符串
ApfelServerInstance* local_apfel
,#define REINETA
并且Url("http://apfel.de")
必须变为OraculoServerInstance* local_oraculo
,#define HAMMERSTEIN
等。
这也适用于不再存在的文件HEAD
。
以最少的手动干预(以便可以将其批量应用于可能大量的存储库/资产)实现它的最简单和最无痛的方法是什么?