我想将商业回购转换为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/
我也尝试了快速导出但没有用。
答案 0 :(得分:2)
Hg-Git将您的书签作为分支推送到Git服务器。 拉下Git分支并将其设置为书签。
...
配置
...
git.branch_bookmark_suffix
hg-git不能在Mercurial命名分支和git之间转换 两者的分支在概念上是不同的;相反,它使用 Mercurial书签代表git分支的概念。 因此,将汞仓库转换为git时,通常需要 创建书签以镜像您想要的所有命名分支 看转移到git。主要警告是您 您的书签不能使用与命名分支相同的名称, 而且没有可行的方法来重命名分支 水星。
在一个用例中,有人希望将汞回购转移到 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时, 当且仅当名为hg的hg时,才应用_bookmark
后缀 该名称的分支存在。例如,当更改release_6_maintenance
分支被检入git,这些将是 放置在hg上的release_6_maintenance_bookmark
书签中。但 如果将名为release_7_maintenance
的新分支拉到hg, 并且还没有release_7_maintenance
命名分支, 书签将被命名为release_7_maintenance
,而不会使用 后缀。
branch_bookmark_suffix
选项类似于authors选项, 用于迁移旧的hg命名分支。往前走 与git repo链接的repo应该只使用书签 用于命名分支。