簡體   English   中英

轉換git repo到mercurial repo

[英]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 gexporthg-git一部分)在適當的位置重新創建它,或者hg-git使用git-hghg / brz-bridge之類的東西 另請參閱Git與Mercurial存儲庫的互操作性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM