我们正在尝试从 Visual SourceSafe(VSS)/SourceOffsite(SOS) 迁移到 HG/Git,有一个主要问题是我们不知道如何正确处理它。
我们将 C++ 源文件作为“产品 X”的一部分分发给我们的用户,这些源文件当然是受版本控制的。假设源文件的组织方式如下:
{产品 X 安装文件夹}\SDK\system*.h
{产品 X 安装文件夹}\SDK\Src*.cpp
到目前为止,一切都很好。对于一些高级用户,我们提供了额外的文件来制作我们的“Product X 专业版”,这些文件也放在上面提到的相同位置。
这不会是 VSS 的问题,因为 VSS 支持文件共享
以下是我们在 VSS 中管理源文件的方式:
我们在 VSS 中有一个“基本/非专业”版本的项目
$/Support/ CoreVersion /SDK/system/ .h
$/Support/ CoreVersion /SDK/Src/ .cpp
我们有一个“pro”版本的项目,它只包含高级用户的文件
$/Support/ Pro /SDK/system/ .h
$/Support/ Pro /SDK/Src/ .cpp
最后,两个不同版本的文件可以共享到同一个项目:
$/ SourceBase /SDK/system/
$/ SourceBase /SDK/Src/
然后开发人员只需要在 $/SourceBase/ 上工作。
现在,我们无法弄清楚如何在 HG/Git 中做到这一点,因为不再有“文件共享”。
我们知道“子存储库”,但是它似乎只为子路径设计,这不是我们的情况,因为这些文件必须放在同一个文件夹下,我们不想更改文件结构,除非它是最后一招。
对此有任何想法吗?