我想将Merurial回购转换为git回购。其实我做到了,但是我没有看到分支。转换回购后,我只能看到一个分支(作为主分支),看不到任何其他分支,但可以看到正确的历史记录(所有更改)。当单击任何提交时,我可以看到以下信息:
Date: 19 Nisan 2019 Cuma 15:14:37
Committer: sevgi.cakmak
Change dialog header
--HG--
branch : sevgi-2.0.0
但我看不到左侧的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
hg bookmark -r 2.0.0 master
(也尝试这样hg bookmark -r default master
:),然后我从cmd开始处理这行
hg gexport --debug //this line converting all revision
工作这行后,我的输出是这样的:
converting revision a318482e0769e2fceb13a1545cb477d60a00b434
converting revision e444655d161131f9ed1676f6c175813097fd18g8
converting revision 0ab06d22eaf4ff4ecb96caba343fdcc3a85e367k
converting revision 8a4e7f4defb0b04e76e67a825bedf746fe4f3fc5 ......etc
然后我工作这条线git config --bool core.bare false
。毕竟,我确实打开了.git下的branchs文件夹,这个较旧的为空。我想在我的仓库中看到分支。
参考:https : //helgeklein.com/blog/2015/06/converting-mercurial-repositories-to-git-on-windows/
我也尝试了快速导出,但是没有用。
从文档部分用法:
Hg-Git将您的书签作为分支推送到Git服务器,并将下拉Git分支并将其设置为书签。
...
组态
...
git.branch_bookmark_suffix
hg-git不会在Mercurial命名分支和git分支之间进行转换,因为两者在概念上是不同的;相反,它使用Mercurial书签来表示git分支的概念。因此,将hg仓库转换为git时,通常需要创建书签以镜像希望将其转移到git的所有命名分支。主要的警告是,您不能为书签使用与命名分支相同的名称,此外,在Mercurial中没有可行的方法来重命名分支。
对于一个人希望将hg存储库转移到git,并保持与hg端相同的命名分支的用例,
branch_bookmark_suffix
可能就需要这些。这提供了一个字符串“后缀”,该字符串将在每个书签名称上被识别,并在将书签翻译为git分支时被剥离:[git] branch_bookmark_suffix=_bookmark
上方,如果某个汞仓库有一个名为的命名分支
release_6_maintenance
,则可以将其链接到名为的书签release_6_maintenance_bookmark
。然后,hg-git_bookmark
将从该书签名称中删除后缀,并创建一个名为的git分支release_6_maintenance
。当从git拉回到hg时,_bookmark
如果且仅当存在具有该名称的hg命名分支时,才应用后缀。例如,将对release_6_maintenance
分支的更改签入git后,这些更改将被放入release_6_maintenance_bookmark
hg的书签中。但是,如果将一个名为的新分支release_7_maintenance
拉到hg上,并且还没有release_7_maintenance
命名分支,则该书签将被命名release_7_maintenance
而不使用后缀。该
branch_bookmark_suffix
选项与authors选项类似,用于迁移旧版hg命名分支。展望未来,要与git repo链接的hg repo应该仅使用书签进行命名分支。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句