【问题标题】:Mercurial: enable git subrepoMercurial:启用 git subrepo
【发布时间】:2018-03-30 16:31:34
【问题描述】:

最近默认禁用此行为。该消息提示您检查帮助页面,但它没有帮助,至少它没有帮助我。

 "subrepos"
    ----------

    This section contains options that control the behavior of the
    subrepositories feature. See also 'hg help subrepos'.

    Security note: auditing in Mercurial is known to be insufficient to
    prevent clone-time code execution with carefully constructed Git subrepos.
    It is unknown if a similar detect is present in Subversion subrepos. Both
    Git and Subversion subrepos are disabled by default out of security
    concerns. These subrepo types can be enabled using the respective options
    below.

    "allowed"
        Whether subrepositories are allowed in the working directory.

        When false, commands involving subrepositories (like 'hg update') will
        fail for all subrepository types. (default: true)

    "hg:allowed"
        Whether Mercurial subrepositories are allowed in the working
        directory. This option only has an effect if "subrepos.allowed" is
        true. (default: true)

    "git:allowed"
        Whether Git subrepositories are allowed in the working directory. This
        option only has an effect if "subrepos.allowed" is true.

        See the security note above before enabling Git subrepos. (default:
        false)

    "svn:allowed"
        Whether Subversion subrepositories are allowed in the working
        directory. This option only has an effect if "subrepos.allowed" is
        true.

        See the security note above before enabling Subversion subrepos.
        (default: false)

我认为它正在将以下内容添加到项目的 hgrc 中:

[subrepos]
git:allowed

但它给出了一个解析错误。有谁知道正确的格式?而且,为什么他们决定禁用它?每次我签出这个项目时,我都必须进行此更改?

【问题讨论】:

  • 语法应该是git:allowed = true。我还没有尝试过,但与例如[diff] 部分设置git = true 进行比较。如果您不担心安全问题,可以在您的个人.hgrc 中设置。

标签: git configuration mercurial


【解决方案1】:

在您的.hgrc 文件中,您必须添加:

[subrepos]
git:allowed = true

【讨论】:

  • 这也可以通过编辑.hg/hgrc为单个存储库启用。
【解决方案2】:

我在 ~/.hgrc 配置中使用了以下内容,并验证了 allowedgit:allowed 都按预期启用和禁用功能。

[subrepos]
allowed = True
hg:allowed = True
git:allowed = True
svn:allowed = True

【讨论】:

  • 这是最好的答案
【解决方案3】:

在 Debian 8 docker 容器中,Mercurial 版本 3.1.2,将 repos 和 subrepos 迁移到 phabricator 后,mercurial 停止为我们工作。据报道:

abort: subrepo type git not allowed
(see 'hg help config.subrepos' for details)

首先,看帮助就行了

hg help subrepos

但这没有用。上面为 .hgrc 建议的语法对我们不起作用。但是这样做了:

[subrepos]
allowed = hg git

【讨论】:

  • 这对我的公司帮助很大。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 2022-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多