eag*_*gle 3 git version-control mercurial hg-git atlassian-sourcetree
我想将 mercurial repo 转换为 git repo。其实我做了,但我没有看到分支。转换 repo 后,我只能看到一个分支(作为 master),我看不到任何其他分支,但我可以看到历史(所有更改)是正确的。单击任何提交时,我可以看到以下信息:
Date: 19 Nisan 2019 Cuma 15:14:37
Committer: sevgi.cakmak
Change dialog header
--HG--
branch : sevgi-2.0.0
Run Code Online (Sandbox Code Playgroud)
但我看不到左侧的 sevgi-2.0.0 分支(我正在使用 sourcetree)。
我的步骤:
mercurial.ini 文件:
[extensions]
strip =
histedit =
rebase =
hggit = C:\Users\sevgi.cakmak\Desktop\hg-git\hggit
hgext.bookmarks =
[git]
intree = True
Run Code Online (Sandbox Code Playgroud)
hg bookmark -r 2.0.0 master(也试过这样hg bookmark -r default master:)然后我从 cmd 处理了这一行
hg gexport --debug //this line converting all revision
Run Code Online (Sandbox Code Playgroud)
在这一行工作后,我的输出是这样的:
converting revision a318482e0769e2fceb13a1545cb477d60a00b434
converting revision e444655d161131f9ed1676f6c175813097fd18g8
converting revision 0ab06d22eaf4ff4ecb96caba343fdcc3a85e367k
converting revision 8a4e7f4defb0b04e76e67a825bedf746fe4f3fc5 ......etc
Run Code Online (Sandbox Code Playgroud)
然后我在这条线上工作 git config --bool core.bare false。毕竟我确实在 .git 下打开了分支文件夹,而这个旧的文件夹是空的。我想在我的 repo 上看到分支。
参考:https : //helgeklein.com/blog/2015/06/converting-mercurial-repositories-to-git-on-windows/
我也尝试过快速导出但没有用。
从文档部分用法:
Hg-Git 将您的书签作为分支推送到 Git 服务器,并将下拉 Git 分支并将它们设置为书签。
...
配置
...
Run Code Online (Sandbox Code Playgroud)git.branch_bookmark_suffixhg-git 不会在 Mercurial 命名分支和 git 分支之间转换,因为两者在概念上是不同的;相反,它使用 Mercurial 书签来表示 git 分支的概念。因此,在将 hg 存储库转换为 git 时,您通常需要创建书签来镜像所有您希望看到的已转移到 git 的命名分支。对此的主要警告是,您不能为书签使用与命名分支相同的名称,而且在 Mercurial 中没有可行的方法来重命名分支。
对于想要将 hg 存储库转移到 git 并维护与 hg 端存在的相同命名分支的用例,这
branch_bookmark_suffix可能就是所需要的。这显示了一个字符串“后缀”,它将在每个书签名称上被识别,并在书签被转换为 git 分支时被删除:Run Code Online (Sandbox Code Playgroud)[git] branch_bookmark_suffix=_bookmark上面,如果一个 hg 存储库有一个名为 的命名分支
release_6_maintenance,那么您可以将它链接到一个名为 的书签release_6_maintenance_bookmark。hg-git 然后将从此_bookmark书签名称中去除 后缀,并创建一个名为 .git 的 git 分支release_6_maintenance。当从 git 拉回 hg 时,_bookmark后缀会被应用回来,当且仅当该名称的 hg 命名分支存在时。例如,当对release_6_maintenance分支的更改 被检入 git 时,这些将被放置release_6_maintenance_bookmark在 hg 上的书签中。但是如果一个名为release_7_maintenancehg的新分支被拉到 hg,并且已经没有一个release_7_maintenance命名的分支,书签将被命名release_7_maintenance为不使用后缀。该
branch_bookmark_suffix选项与作者选项一样,用于迁移遗留的 hg 命名分支。展望未来,要与 git 存储库链接的 hg 存储库应该只使用书签进行命名分支。
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |