【问题标题】:mercurial - several projects and repositoriesmercurial - 几个项目和存储库
【发布时间】:2015-06-15 22:37:57
【问题描述】:

(免责声明:我对 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

并将它们作为一个整体进行管理。我很困惑。

【问题讨论】:

  • 要准确理解您要问的内容有点困难,但也许您正在寻找子存储库? mercurial.selenic.com/wiki/Subrepository
  • 不确定有什么不清楚...我正在尝试找出最适合我的情况的设置。我关注了你的链接,这是你推荐的吗?听起来这可能是一个解决方案,但我不确定。 Fogcreek 说的是关于单独的存储库,您的链接是关于子存储库的。由于我没有使用 mercurial 的经验,我真的无法区分,如果有的话。

标签: mercurial relation projects repository


【解决方案1】:

对于每个项目组,您需要在单独的目录中创建一个存储库。关于你如何构建下面的内容有待商榷,并且在一定程度上取决于你的偏好。

您说您希望在单个存储库中管理该项目组中的所有内容。这意味着您可以简单地创建一个您所描述的目录结构,其中子项目位于此存储库的不同目录中。

在每个组中,您可以更进一步,将这些目录(库、程序 1、程序 2...)中的每一个设为单独的存储库,进而成为主存储库的子存储库,如中所述Lasse Karlsen (Subrepository) 提供的链接。

如果您允许更灵活的布局并放弃对一个组的整体检出,您也可以以不同的方式处理它:例如,您可以将库声明为每个使用该库的程序的子存储库。这样做的好处是程序以这种方式直接定义它所依赖的库版本

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

【讨论】:

  • 谢谢,这主要回答了我的问题。在进一步询问之前,我需要进行试验。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多