跟踪子重新构件中的内部库



我们正在开发一个内部框架,该框架将使用几个项目。这个想法是将整个框架跟踪为一个杂物每个项目存储库的子修订版。这导致了以下subrepo树(请参阅薄壳存储库):

ProjectMaster/
    Project/
    CommonLib/
    FrameworkMaster/
        Framework/
        CommonLib/
  • 这对您有意义吗?是否有更好/更简单的方法来处理这些依赖性不涉及子重新构件?
  • 具体来说,拥有两个常见的子重新构件是有意义的吗?
  • 如果没有,项目使用Frameworkmaster/CommonLib是否有意义?这如果依赖性更复杂,可能会变得凌乱。
  • 您将在哪里打开功能分支?在主人上?仅在相关子修订版?
    • 如果您在主人上没有特色分支,则每次克隆存储库您最终获得了最后一个提交的子对状态,任何随机特征分支中的任何子repo。非常混乱。
    • 如果您在主人上有特色分支,则仍然需要一个功能分支在至少一个子雷普中,以避免在那里没有命名的头。

通常,此解决方案听起来很难使用。有任何建议吗?

根据薄壳存储库文档中的描述:

For a thin-shell repository, all repositories containing 'real' code 
have no subrepositories of their own (ie. they are leaf nodes). They can 
thus be treated as completely ordinary repositories and a developer can 
largely ignore the additional complexities of subrepositories. Work can 
continue in these repositories even if their siblings become unavailable. 

您所描述的结果结构已嵌套了包含"真实"代码的子修复仪,因此它不是推荐的方式。根据Mercurial文档,推荐的结构将如下(我不知道/Frameworkmaster/是否作为嵌套子重新构件的位置持有人或它也具有"真实"代码。然后,它也应包含在以下作为同级叶节点):

ProjectMaster/
    Project/
    Framework/
    CommonLib/ 

所以,回答您的问题:

  • 这对您有意义吗?是否有更好/更简单的方法来处理这些依赖关系,而这些依赖项不涉及子重新构件?

更好/更简单的方法是使用薄壳存储库来简化复杂的依赖关系。

  • 具体来说,拥有两个常见的子重新构件是有意义的吗?

如果项目和框架都取决于 same 版本 commonlib的分支 地方。但是,如果出于某些遗产原因,项目和框架需要不同的 version branch commonlib的,那么在两个地方拥有CommonLib确实很有意义。

  • 您将在哪里打开功能分支?在主人上?仅在相关的子修订版中?

不确定这是您对特征分支的意思。您是要在这里说"未来"?

相关内容

  • 没有找到相关文章

最新更新