将不同项目中的文件共享到HG / Git中的同一文件夹

时间:2013-10-23 06:18:40

标签: git file mercurial sharing

我们正试图从Visual SourceSafe(VSS)/ SourceOffsite(SOS)转移到HG / Git,有一个主要问题,我们不知道如何正确处理它。

我们将C ++源文件作为“产品X”的一部分分发给我们的用户,这些源文件当然是版本控制的。 假设源文件的组织方式如下:

  

{产品X安装文件夹} \ SDK \ system * .h
  {Product X install folder} \ SDK \ Src * .cpp

到目前为止一切顺利。 对于一些高级用户,我们提供了其他文件来制作我们的“Product X Professional版本”,这些文件也放在上面提到的相同位置。

这对VSS来说不是问题,因为VSS支持sharing of files

以下是我们在VSS中管理源文件的方式:

我们在VSS中有一个“基本/非专业”版本的项目

  

$ /支持/的 CoreVersion / SDK /系统/ .H
  $ /支持/的 CoreVersion / SDK / Src的/
的.cpp

我们有一个“专业版”项目,它只包含高级用户的文件

  

$ /支持/ / SDK /系统/ .H
  $ /支持/ / SDK / src目录/
的的.cpp

最后,两个不同版本的文件可以共享到同一个项目中:

  

$ /的 SourceBase / SDK /系统/
  $ /的 SourceBase / SDK / Src的/

然后开发人员只需要处理$ / SourceBase /.

现在,我们无法弄清楚如何在HG / Git中完成此操作,因为不再有“文件共享”。

我们知道“子存储库”,但它似乎只针对子路径设计,这不是我们的情况,因为这些文件必须放在同一个文件夹下,我们不想更改文件结构除非这是最后的手段。

对此有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用2个分支来执行此操作。一个是pro,一个是std,所有开发都转到pro分支,std分支只接受合并。

最初,您可以将所有文件放在专业分支中,并进行初始提交。然后删除非std文件,提交并创建std分支。

现在每个人都切换到专业分支并进行开发,当需要std build时,只需从pro合并,并在解决Changed-Removed冲突时选择Remove。