【问题标题】:What is the issue with absolute paths in .hgsub?.hgsub 中的绝对路径有什么问题?
【发布时间】:2014-02-03 20:07:07
【问题描述】:

mercurial documentation 建议在.hgsub 中使用琐碎的相对路径,并使用[subpaths] 映射到绝对路径。我不完全理解这背后的原因。文档页面上的论点是绝对路径更有可能改变。每当绝对路径发生变化时,[subpaths] 的解决方案是否也需要更改?

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

【问题讨论】:

    标签: mercurial mercurial-subrepos


    【解决方案1】:

    主要原因是有时路径会发生变化,而您的 .hgsub 是历史的一部分。如果您的 subrepo 从 http://tinyco.com/hg/repo1 移动到 http://bigco.com/tinydivision/hg/repo1 您当然可以更新您的 .hgsub 文件,但旧版本已用于过去的修订。因此,当您使用hg update reallly_old_revision 时,它会尝试与 http://tinyco.com 交谈,该网站在收购过程中被削弱了。如果您保留一条普通路径作为子存储库路径,那么您可以在 .hg/hgrc 中使用 [subpaths] 将其指向当前所在的位置。

    将子存储库指向您自己的真实子存储库的本地克隆通常也很方便,这样即使您无法推送到子存储库(无权限),您也可以推送到它。

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

    【讨论】:

    • 谢谢,我没有意识到我的[subpaths] 部分也可以在我的.hg/hgrc 中。如果文件.hgsub 中只有[subpaths] 部分,那么在旧版本中也是不正确的。 .hg/hgrc 中的条目会覆盖.hgsub 中的条目,即我可以在.hgsub 中使用我的默认设置并在路径更改时更新.hg/hgrc 吗?
    • 是的,这是我的理解。
    猜你喜欢
    • 2019-11-23
    • 2020-11-16
    • 2012-05-04
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    相关资源
    最近更新 更多