将不同项目中的文件共享到 HG/Git 中的同一个文件夹
Posted
技术标签:
【中文标题】将不同项目中的文件共享到 HG/Git 中的同一个文件夹【英文标题】:Sharing files in different projects to the same folder in HG/Git 【发布时间】:2013-10-23 06:18:39 【问题描述】:我们正在尝试从 Visual SourceSafe(VSS)/SourceOffsite(SOS) 迁移到 HG/Git,存在一个我们不知道如何正确处理的主要问题。
我们将 C++ 源文件作为“产品 X”的一部分分发给我们的用户,这些源文件当然是受版本控制的。 假设源文件是这样组织的:
Product X 安装文件夹\SDK\system*.h Product X 安装文件夹\SDK\Src*.cpp
到目前为止一切顺利。 对于一些高级用户,我们提供了额外的文件来制作我们的“Product X 专业版”,这些文件也放在上面提到的相同位置。
这不会是 VSS 的问题,因为 VSS 支持 sharing of files
以下是我们在 VSS 中管理源文件的方式:
我们在 VSS 中有一个“基本/非专业”版本的项目
$/Support/CoreVersion/SDK/system/.h $/Support/CoreVersion/SDK/Src/.cpp
我们有一个“pro”版本的项目,它只包含高级用户的文件
$/Support/专业版/SDK/system/.h $/Support/专业版/SDK/Src/.cpp
最后,两个不同版本的文件可以共享到同一个项目中:
$/SourceBase/SDK/system/ $/SourceBase/SDK/Src/
然后开发人员只需要在 $/SourceBase/ 上工作。
现在,我们无法弄清楚如何在 HG/Git 中做到这一点,因为不再有“文件共享”。
我们知道“子存储库”,但它似乎只为子路径设计,这不是我们的情况,因为这些文件必须放在同一个文件夹下,我们不想更改文件结构除非是万不得已。
对此有什么想法吗?
【问题讨论】:
【参考方案1】:您可以尝试使用 2 个分支来执行此操作。一个是pro,一个是std,所有开发都去pro分支,std分支只接受merge。
最初您可以将所有文件放在 pro 分支中,并进行初始提交。然后删除非std文件,提交并创建std分支。
现在大家切换到pro分支做开发,当需要std build的时候,直接从pro合并,解决Changed-Removed冲突时选择Remove即可。
【讨论】:
以上是关于将不同项目中的文件共享到 HG/Git 中的同一个文件夹的主要内容,如果未能解决你的问题,请参考以下文章