【问题标题】:How do I stop getting a parse error when setting up a Hg Subrepo?设置 Hg Subrepo 时如何停止出现解析错误?
【发布时间】:2014-09-19 15:35:18
【问题描述】:

我在为本地 hg 存储库创建 hg-subrepo 时遇到困难。

我创建了一个“核心”存储库,我希望它成为另一个存储库中的子存储库。我可以在目标中克隆“核心”存储库,但是当我去创建/签入 .hgsub 文件时,我收到一个禁止我提交文件的解析错误。

PS C:\Temp\subrepo_experiments\target01> hg status
PS C:\Temp\subrepo_experiments\target01> hg clone C:\Temp\subrepo_experiments\core
destination directory: core
updating to branch default
resolving manifests
getting core_001.txt
getting core_002.txt
getting core_003.txt
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
PS C:\Temp\subrepo_experiments\target01> echo core = C:\Temp\subrepo_experiments\core > .hgsub
PS C:\Temp\subrepo_experiments\target01> hg status
? .hgsub
PS C:\Temp\subrepo_experiments\target01> hg add .hgsub
adding .hgsub
PS C:\Temp\subrepo_experiments\target01> hg commit
hg: parse error at .hgsub:1:  ■c o r e
PS C:\Temp\subrepo_experiments\target01>

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    无论您用于创建.hgsub 文件的任何编辑器都创建了一个可憎的东西。它似乎使用 16 位 UTF-16 编码,并且在前面有一个 BOM(字节顺序标记)。使用无需 BOM 即可创建 UTF-8 或 ASCII 文本的东西,您的状态会很好。你可以在输出中看到这个问题:

    hg: parse error at .hgsub:1:  ■c o r e
    

    它告诉你“嘿,前面有一段废话,然后每个字符之间都有一个不可打印的字符(在这种情况下为 NUL / 0x00)!

    【讨论】:

    • PowerShell echo 语句导致了我的问题!
    • 永远不要相信认为按键是两个字节的系统。 ;)
    【解决方案2】:

    您已经重新阅读了子存储库手册,更好 - Subrepositories 来自“Mercurial Kick Start Exercises”,至少是简介的第一章

    您的错误是子存储库右侧的错误定义。它必须是相对路径(到容器存储库的根目录)或 URL(对于外部子存储库)。

    如果 core 是 subrepo_experiments 的子目录(它是主 repo 的根目录),那么 .hgsub 将具有最简单的形式

    core = core
    

    它将是功能齐全的存储库,其中包含子存储库

    Kick Start 的重复样本

    z:\mainrepo>dir /B
    .hg
    subrepo
    .hgsub
    .hgsubstate
    z:\mainrepo>dir subrepo /B
    .hg
    z:\mainrepo>type .hgsub
    subrepo = subrepo
    

    只是为了测试

    z:\>hg clone mainrepo main-clone -v
    updating to branch default
    resolving manifests
    getting .hgsub
    getting .hgsubstate
    2 files updated, 0 files merged, 0 files removed, 0 files unresolved
    

    注意:Ry4an 发现了第一个主要问题,我怀念更深入的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-12
      相关资源
      最近更新 更多