將Mercurial文件夾轉換為Git存儲庫


Answers

Hg-Git擴展

Hg-Git可用於將Mercurial存儲庫轉換為Git。 您可以使用本地存儲庫或通過SSH,HTTP或HTTPS訪問的遠程存儲庫。

本地存儲庫轉換示例。

  1. 安裝Hg-Git。

    • 在Windows上, TortoiseHg帶有Hg-Git,但您需要通過設置工具啟用它 (在擴展部分中)

      或者在~/mercurial.ini手動

      [extensions]
      hggit =
      
  2. 使用以下命令轉換存儲庫:

    $ mkdir git-repo; cd git-repo; git init; cd ..
    $ cd hg-repo
    $ hg bookmarks hg
    $ hg push ../git-repo
    

hg書籤對於防止問題是必要的,因為否則hg-git會推送到當前簽出的分支,令Git混淆。 這將在Git存儲庫中創建一個名為hg的分支。 要獲得主站中的更改,請使用以下命令(僅在首次運行時需要,稍後使用git mergerebase ):

$ cd git-repo
$ git checkout -b master hg
Question

我沒有Mercurial的豐富經驗,我主要是一個Git的人。

我很想在git Repository中鏡像特定的Mercurial文件夾/文件。 我實際上試圖做的是將文件的歷史記錄從Mercurial存儲庫導出到Git,並能夠與未來的提交保持同步。

你有什麼建議如何進行? 我相信要走的路應該是獲取Mercurial補丁的歷史記錄,定期將每個提交作為補丁導出並將Mercurial補丁應用於Git存儲庫。




Gitify

似乎是一個更現代和易於使用的替代執行轉換https://github.com/buchuki/gitifyhg

pip install gitifyhg
git clone gitifyhg::<hgrepoaddress>
# done, you have a git repo with the entire history of the hg one