爲了我們的回購管理,我們最近從SVN切換到GIT,並且非常瞭解非線性源代碼控制風格。目前,整個代碼庫(服務的混合,Windows/Xamarin客戶端和ASP.net網站)被存入回購站,包括各種核心庫。使用GIT拆分多面C#項目
爲了進一步改善我們的工作流程,我試圖將我們所有的項目分離到他們自己的倉庫中(例如:一個用於Web服務,一個用於Windows程序等),總共大約6個單獨的項目共享一些代碼。
現在,我已經對一些不同的解決方案進行了一些研究,但我正在努力尋找折衷辦法。最後,我們希望鎖定我們核心庫的master
分支,因爲它們是關鍵任務,需要通過拉請求進行同行評審。只有這樣他們纔會被接受。
我的第一個想法是使用GIT子模塊,但經過一番研究後,我發現對子樹的新概念給予了青睞。
我在某些停機時間播放了子樹,並且看不到任何方式爲父項目的不同分支選擇遠程子樹(如Core Libraries)的不同分支。
我也給了NuGet軟件包,但是可以提交併批准的可編輯源代碼的要求在這裏沒有實現。
我還沒有認真看過這裏的子模塊,所以也許他們在這裏需要固有的複雜性質?或者我錯過了什麼?
你提到了準備好時推回到子回購上游的想法。在我的場景中,需要在對核心庫進行更改時進行代碼審查/請求,主要是爲了確保關鍵任務不會輕易被玩弄,並且還會通知其他開發人員任何更改核心庫,如方法簽名更改和增加的功能。 –
我沒有看到問題。使用子樹時,您基本上擁有多個子項目副本,並且您可以手動控制每個子項目的推送和跟蹤存儲庫。如果在超級項目的上下文中對子項目進行了更改,則仍然可以將其設置爲子項目的跟蹤存儲庫。 – johnb003
我已經提交了一個備選答案,因爲我仍然認爲這個答案有它自己的優點。 – johnb003