2012-09-21 80 views
0

我們有一個超級項目,它有幾個子模塊,這一直運行良好。從超級項目中跟蹤子模塊中的更改

但是現在我們已經達到了需要爲這個特定項目修改其中一個子模塊的問題,但是如果可能的話,仍然希望能夠從原始子模塊中引入更改。

我們希望這些更改能夠被超級項目顯然跟蹤,並且如果我們進行更改,不會被推送到原始子模塊。

我們該如何處理?

我想我們可以在這個特定項目的子模塊中創建一個分支,但是如果使用相同的子模塊,100多個項目可能會變得混亂。

+0

你是否擁有你的子模塊?還是來自外部來源? – LeGEC

回答

0

我不知道你的項目/子項目的細節,所以我只會給出模糊和一般的觀察。

你的問題似乎並沒有專門用於git,而是用於管理項目/子項目依賴關係。

首先警告一句話:從您所描述的內容中,您想調整100個以上項目所使用的子模塊的行爲,僅針對其中一個項目。如果你最終修改子模塊(例如:修改其他項目也使用的代碼),那麼你正在測試的地獄中輸入一個新的圓圈。看看你的子模塊是如何工作的,並確定你是否真的應該改變你的子模塊,或者只是爲一個項目調整它。

如果您需要的修改只針對一個項目,請嘗試將這些修改限制在項目中 - 而不要修改子模塊。

一種可能的方式將包裹它的呼叫在具體的項目,如更換來電:取決於參數如果你的子模塊的行爲,要真正轉變

submodule::do_stuff() 

function adjust_behaviour(){ 
    result = submodule::do_stuff(); 
    tweak_for_my_project(result); 
    return result; 
} 

,你應該在它提供的接口中顯示它來使用它。例如:如果您的子模塊包含功能computeThis(),並且計算實際上取決於參數weather,則應考慮更改該功能以便相應地執行相應操作:computeThis(weather)

或者,也許你的sumodule可以加載一個配置文件,並且每個項目都應該提供它自己的。