如何在clone / pull中保留Mercurial subrepo重映射?

时间:2012-03-27 19:03:14

标签: mercurial subrepos mercurial-subrepos

我正在尝试在Mercurial(2.1.1)中设置subrepo重映射,以考虑将来可能发生变化的subrepo路径。在[subpaths]文件中指定时,我已经能够正确读取和处理.hgrc密钥。但是,当我从该存储库克隆或拉出时,.hgrc文件不会被复制,因此子表面重映射不会被带到目标存储库。

在查看SubrepoRemappingPlan后我的第一个想法是将[subpaths]放入.hg/subpaths文件中, 应该在克隆/拉片上复制。但是,事实证明此功能已被废弃,并且子路径文件已通过Projrc扩展名替换为更通用的配置共享机制。

Projrc解决方案的问题是:

  1. 这是一个单独的扩展,所有团队成员都需要安装并启用

  2. 出于安全原因,需要进行额外配置以告知Projrc允许其从哪里拉出(以及允许拉出的位置)

  3. 所以,我的问题是,Mercurial中是否有任何内置机制用于实现跨克隆/拉动保留的子地址映射?

2 个答案:

答案 0 :(得分:1)

通常,最好的方法是使用subrepos的相对路径(请参阅http://mercurial.aragost.com/kick-start/en/subrepositories/),以便它们永远不必重新映射。

示例:

+ main repo
  + subrepo
  + .hgsub

.hgsub:

subrepo = subrepo

答案 1 :(得分:1)

将子路径映射添加到.hgsub文件应该可以解决问题(如mercurial wiki中所述)。