如何将我的Git存储库转换为Mercurial并带来其标签

Jus*_*ams 10 git port mercurial portability

我想玩Mercurial一点,所以我试图将我现有的一个存储库转换过来.我在Mac上运行以下命令:

hg convert myrepos myrepos-hg
Run Code Online (Sandbox Code Playgroud)

该命令成功导入了我的所有提交,但它没有带来在Git存储库中标记的8个左右的标记(也不是任何分支).我需要设置一个特殊参数来将我的标签导入Mercurial吗?

ric*_*chq 6

您的标签是轻量级git标签还是已注释标签上的标签?hg convert只转换带注释的标签,但默认情况下git会创建轻量级标签.我最近在转换我的一个存储库时遇到了这个问题.您可以查看它们的内容如下:

git ls-remote --tags .
Run Code Online (Sandbox Code Playgroud)

运行hg convert只会转换结尾的标签^{},带注释的标签.你有2个选择:

  • 修补git.py hgext convert扩展文件以转换所有类型
  • 在转换之前将git标签更改为带注释的标签

使用小型shell脚本和git-tag的--force选项,您可以注释所有标记.