mercurial - 几个项目和存储库

时间:2015-06-15 22:37:58

标签: mercurial relation projects repository

(免责声明:我对mercurial和版本控制完全不熟悉)

所以我有一个文件夹结构

Programs
  CPPLib1
  CPPProject11
  CPPProject12

  CPPLib2
  CPPProject21
  CPPProject22

每组三个完全独立于另一个组,但在每个组中代码是相关的,我想在整个版本控制下管理它(在一个事务中提交/提取所有内容)。正如我通过谷歌搜索所理解的那样,我必须在他们共同的父母(程序)中为每个组建立一个存储库,但我不能拥有2个不同的存储库,对吧?这是否意味着我必须改为使用这种结构:

Programs
  Group1
    CPPLib1
    CPPProject11
    CPPProject12

  Group2
    CPPLib2
    CPPProject21
    CPPProject22

相关问题,此网站http://help.fogcreek.com/8169/using-more-than-one-repository

“由于Mercurial和Git是分布式版本控制系统(DVCS),因此每个项目至少应使用一个单独的存储库,包括共享项目和库。”

那么这个建议意味着什么?

我没有单独的存储库
  CPPLib1
  CPPProject11
  CPPProject12

并整体管理它们。我很困惑。

1 个答案:

答案 0 :(得分:0)

对于每个项目组,您需要在单独的目录中创建一个存储库。关于你如何构建下面的结构是有争议的,并且取决于你的偏好。

您说您希望在单个存储库中管理该项目组中的所有内容。这意味着您只需创建一个目录结构,就像您所描述的那样,子项目位于此存储库中的不同目录中。

在每个组中,您可以进一步使用这些目录(库,程序1,程序2,...)作为一个单独的存储库,而这个存储库又成为主存储库的子存储库,如Lasse Karlsen(Subrepository)给出的链接。

如果您允许更灵活的布局并放弃检查整个组,您也可以采用不同的方式处理它:例如,您可以将库声明为使用该库的每个程序的子库。它的优势在于程序直接定义了它所依赖的库版本

此外,在跳转到子存储库之前,您可能还想查看来宾存储库的替代实现。它们处理依赖性不那么严格,因此无法找到子存储库变得不那么致命:https://bitbucket.org/selinc/guestrepo

相关问题