[英]Convert git repo to mercurial repo
我當時正在制作git存儲庫,現在出於某種原因需要將其轉換為hg存儲庫。 我最初的git存儲庫具有41次提交,大小為320MB。
我正在嘗試使用hg convert git-repo hg-repo
轉換存儲庫。 此命令開始將git repo轉換為hg,但在版本號18中途掛起(不停止)。我檢查了hg repo的大小是否為50Mb。 我知道那個轉速。 18和size = 15M並不重要,但是hg convert不會輸出我可以調試的任何錯誤。
汞是否在某些未知位置打印錯誤? 存儲庫的大小是否會影響“汞轉換”程序?
在我的經驗中, hg convert
並不是最容易使用的工具,但是hg-git
一直對我而言工作無懈可擊。 既然您提到git倉庫有一些麻煩,所以您應該嘗試進行完整的完整性檢查:
git fsck-objects --full
(我假設存儲庫是本地的,但如果不是,請進行本地克隆並在那里進行檢查。)
沒必要,但是您可以在繼續之前強制進行垃圾回收:
git gc
如果您真的很偏執,可以進行另一次完整性檢查。 使用hg git
(確保已在.hgrc
安裝並啟用了它),執行本地Mercurial克隆非常容易:
hg clone path/to/git/repo path/to/hg/repo
(這可能需要一些時間-您正在逐一查看修訂並保存它們。)
現在,hg克隆實際上將在內部存儲git repo的隱藏副本-您可以通過在克隆目錄中運行git status
來查看此副本。 這個隱藏的副本不會在拉或推時轉移,因此,如果您真的想擺脫git的遺產,則可以執行另一個克隆:
hg clone path/to/hg/repo path/to/new/repo
如果您決定要返回git,也可以使用hg-git
的隱藏git repo來做到這一點:
git init path/to/new/git/repo
cd path/to/new/git/repo
git pull path/to/hg/repo/.hg/git
如果仍然沒有混合存儲庫,則可以通過hg gexport
( hg-git
一部分)在適當的位置重新創建它,或者hg-git
使用git-hg或hg / brz-bridge之類的東西 。 另請參閱Git與Mercurial存儲庫的互操作性 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.