2014-08-30 156 views
-1

因此,我有一箇舊的Mercurial倉庫,其中最初的開發已經完成。將一箇舊的HG倉庫合併到一個更新的Git倉庫中

然後,該項目已發佈,存儲庫被遺忘,下一位站長通過直接編輯文件接管。

最終這被轉移到一個(新的)Git存儲庫,並且所有最近的更改現在都在那裏。

現在我想要移動新的Git存儲庫並將其放置在舊的Mercurial存儲庫的頂部,將所有提交仍然完好無損地整合到Git存儲庫中。我該怎麼做呢? (由於版本控制的變化,舊版本庫的末端和新版本庫的開始並不相同)

我對Mercurial沒有任何經驗,但對Git有合理的經驗。這一切都在BitBucket上。

編輯:我想我需要Git rebase,但我不確定如何使用它,更不用說將它與Mercurial鏈接起來。

回答

0

由於回購已經發布,真的沒有辦法做到這一點。

Git自帶了一個Python腳本汞回購轉換爲git的,叫hg-to-git.py(通常爲/usr/share/git/hg-to-git/hg-to-git.py安裝)

首先承諾在您的汞回購任何未提交的更改,則:

# this will create a .git folder in your old hg repo, leaves .hg untouched 
$ python2 /usr/share/git/hg-to-git/hg-to-git.py $PATH_TO_REPO 
$ cd your-git-repo 
$ git remote add hg-repo $PATH_TO_REPO && git remote update 

# create an orphaned empty branch, repeat for each hg branch name. 
$ git checkout --orphan original && git rm -rf . 
$ git merge hg/master 
+0

通過「出版「我想我用了一些我不想用的特殊字眼。我會嘗試你的解決方案。在副本中。 – oink 2014-08-31 00:51:06

相關問題