Mercurial .hgsub中的绝对路径有什么问题?

Mercurial .hgsub中的绝对路径有什么问题?,mercurial,mercurial-subrepos,Mercurial,Mercurial Subrepos,建议使用.hgsub中的普通相对路径,并使用[subpath]映射到绝对路径。我不完全理解这背后的原因。文档页面上的论点是绝对路径更有可能更改。当绝对路径改变时,使用[子路径]的解决方案不也需要改变吗 我可以理解的一个原因(但这不适用于我的情况)是克隆的克隆只能使用[子路径]将完整的原始路径重新映射到绝对路径。如果直接使用绝对路径,则克隆的克隆将从原始克隆而不是第一个克隆推/拉。这是反对在没有[subpath]部分的情况下使用绝对路径的唯一原因吗?主要原因是有时路径会发生变化,并且.hgsub是

建议使用
.hgsub
中的普通相对路径,并使用
[subpath]
映射到绝对路径。我不完全理解这背后的原因。文档页面上的论点是绝对路径更有可能更改。当绝对路径改变时,使用
[子路径]
的解决方案不也需要改变吗


我可以理解的一个原因(但这不适用于我的情况)是克隆的克隆只能使用
[子路径]
将完整的原始路径重新映射到绝对路径。如果直接使用绝对路径,则克隆的克隆将从原始克隆而不是第一个克隆推/拉。这是反对在没有
[subpath]
部分的情况下使用绝对路径的唯一原因吗?

主要原因是有时路径会发生变化,并且.hgsub是历史的一部分。如果您的subrepo从移动到,您当然可以更新您的.hgsub文件,但旧版本适用于以前的修订。因此,当您进行
hg update really\u old\u revision
时,它将尝试与http:/tinyco.com进行对话,而http:/tinyco.com作为收购的一部分受到了削弱。如果您保留一条普通路径作为子回购路径,那么您可以在
.hg/hgrc
中使用
[subpath]
将其指向当前所在的位置

还可以方便地将subrepo指向真实subrepo的本地克隆,这样即使无法推送到subrepo(无许可),也可以推送到它


一般来说,添加一个间接层可以增加灵活性。

谢谢,我没有意识到我的
.hg/hgrc
中也可以有一个
[子路径]
部分。如果文件
.hgsub
中只有
[subpaths]
部分,则在旧版本中也不正确。
.hg/hgrc
中的条目是否会覆盖
.hgsub
中的条目,即当路径更改时,我是否可以在
.hgsub
中设置默认设置并更新
.hg/hgrc
?是的,这是我的理解。