2015-04-05 36 views
1

在我們的項目中,由於團隊運營方式和公司安全策略,兩個存儲庫內託管的代碼庫相同,其中一個是git,第二個是mercurial,團隊的一部分通常會提交到mercurial回購,第二部分承諾到git比較來自git和mercurial存儲庫的來源並同步它們

由於這樣一種奇怪的方式使用一些時間代碼庫在2個倉庫中停止同步,我需要再次同步。

所以最初我有2個問題:

  1. 如何從Git的比較來源和Mercurial
  2. 如何將它們進行同步。

UPD1:在同步的情況下,我不認爲它必須是非常高級的,如具有相同的提交歷史或類似的東西。如果只是將文件置於相同的狀態(在可能的情況下,在其他情況下手動合併) - 這將不僅僅是完全正確。

+1

希望您創建了這些存儲庫,以便它們具有現有的關係,例如,使用['hg-git'](http://hg-git.github.io/)從Git創建Mercurial存儲庫。這是這種情況,還是他們完全獨立? – Chris 2015-04-05 17:53:08

+0

它是一開始就是大型git存儲庫的一部分。比一些庫被提取併爲他們創建了一個mercurial倉庫。不要認爲使用了hg-git(當然不知道,當時不是該項目的一部分)。 – Ph0en1x 2015-04-05 17:56:24

+0

[hggit](https://bitbucket.org/durin42/hg-git)將更改集從hg中拉出/推入,然後合併? – 2015-04-06 23:56:13

回答

1

要比較源代碼,您可以在您的計算機中克隆mercurial和git repo,並在這些目錄上使用diff。例如:

diff -rq git_repo hg_repo | grep -v .git | grep -v .hg 

同步部分比較困難:它取決於在代碼在兩者之間偏離的情況下要執行的操作。我想你可以使用之前生成的差異列表手動完成,但我想不出更自動化的方式。

+0

謝謝,看我的問題更新。 – Ph0en1x 2015-04-05 18:00:52

相關問題