我正在尝试使用 hggit 将 mercurial 用作 git 存储库的客户端。
我无法推送到 git 存储库,因为一些天才创建了一个名为GTS 170528
(注意空格)的分支。
从 hg 推送到 git 时,出现错误:
dulwich.errors.RefFormatError: refs/heads/GTS 170528
我只能假设空间是问题所在。我知道您不能真正重命名 hg 分支。
关于如何让 Mercurial 在出站时忽略它或 git 在入站时不关心它的任何想法?
最短的路径是让分支在 git 中重命名,以使其符合git-check-ref-format
您可以在dulwich issues中找到与您完全相同的案例,这导致hggit 出现了新问题,但后者对您的方案没有帮助
因此,如前所述,让 git 分支遵守check-ref-format
PS:关于重命名 Mercurial 分支,请记住,书签也适用于 hggit 同步,不仅仅是命名的分支
这是 hg-git 中的一个错误,我们刚刚对其进行了修复。您可以通过以下几种方式之一解决此问题:
升级到 hg-git 0.10.0。
关闭有问题的分支:
hg update "GTS 170528"
hg commit -m "close branch with silly name" --close-branch
如果是书签,请将其重命名:
hg bookmark --rename "GTS 170528" "GTS-170528"
由于 Git 实际上并不跟踪分支,而只是有指向它们的标记,因此只需删除或更改分支或书签即可让推送成功。因此,您不需要真正更改提交的分支,只需遵循有关如何重命名分支的建议就足够了。