2

我正在尝试使用 hggit 将 mercurial 用作 git 存储库的客户端。

我无法推送到 git 存储库,因为一些天才创建了一个名为GTS 170528(注意空格)的分支。

从 hg 推送到 git 时,出现错误:

dulwich.errors.RefFormatError: refs/heads/GTS 170528

我只能假设空间是问题所在。我知道您不能真正重命名 hg 分支。

关于如何让 Mercurial 在出站时忽略它或 git 在入站时不关心它的任何想法?

4

2 回答 2

0

最短的路径是让分支在 git 中重命名,以使其符合git-check-ref-format

您可以在dulwich issues中找到与您完全相同的案例,这导致hggit 出现了新问题,但后者对您的方案没有帮助

因此,如前所述,让 git 分支遵守check-ref-format

PS:关于重命名 Mercurial 分支,请记住,书签也适用于 hggit 同步,不仅仅是命名的分支

于 2020-04-21T08:29:12.190 回答
0

这是 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 实际上并不跟踪分支,而只是有指向它们的标记,因此只需删除或更改分支或书签即可让推送成功。因此,您不需要真正更改提交的分支,只需遵循有关如何重命名分支的建议就足够了。

于 2021-01-07T16:52:18.677 回答