2014-11-05 165 views
0

我有一個Git倉庫,我需要使用作爲源代碼交付的library,使用Mercurial作爲版本控制。我想讓我的git倉庫中的版本控制能夠以一種簡單的方式更新庫。Git倉庫與Mercurial子倉庫

當前目錄結構如下:

root (git repo here) 
    directory1 
    ... 
    directoryN 

是否可以安全添加庫在root文件夾,並具有以下配置?

root (git repo here) 
    library_folder (mercurial repo here) 
    directory1 
    ... 
    directoryN 

如果是,是否更改使用水銀可見的Git更新library_folder製成,它們是安全的承諾到Git回購?

的工作流程應該是這樣的:在library

  • Developer_x可用

    1. 新的更新使用水銀
    2. Developer_x提交/推動修改Git倉庫拉庫變化
    3. 所有的開發者都像往常一樣使用Git來進行更改,並且他們有library更新
  • 回答

    1

    使用您建議的流程,包含完整Mercurial歷史記錄的整個'.hg'也將被提交。這似乎是一種浪費,很多開銷和麻煩等待發生。

    更安全的替代方案是使用hg-git來轉換您的Mercurial存儲庫,然後使用git submodules或git子樹(不知道哪個是最好的)來存儲對正確變更集的引用。 這樣,您只需要在主存儲庫中存儲引用,而不是所有庫的內容和歷史記錄。

    另一種方法是去'一個大型資源庫',但是你必須提交所有的'庫'文件,除了的.hg目錄。這可以很容易地處理(複雜性較低)。缺點是你失去了歷史(你可以查看工具來導入歷史和所有代碼)。