即使在使用git時,它目前承認按項目使用1個回購(並且大部分答案或建議都會告訴你這樣做),但它們確實是將所有內容放入同一個存儲庫的解決方案,稱爲'monorepo'戰略。 (谷歌,Facebook和微軟)正在(幾乎)走向它......所以你可以很容易找到一些關於正反兩面的文檔。
例:https://github.com/babel/babel/blob/4c371132ae7321f6d08567eab54a59049e07f246/doc/design/monorepo.md
一旦你瞭解的主要問題之一是版本控制工具的性能(但混帳肯定可以支持5開發團隊),它更像是一個項目的感覺......因爲它似乎你似乎已經看到了一些優勢,我強烈建議你測試它!
此外,如果您不滿意,則用於拆分存儲庫(保留歷史記錄)的git命令比合並存儲庫容易得多,因此似乎首先嚐試。
在我的團隊中,我們越來越趨向monorepo。
我的5個開發團隊維護一個由6個解決方案(又名部分)組成的中型應用程序。
如果這是一個應用程序,monorepo確實可能是最好的解決方案。
但是,如果您在使用nuget管理的解決方案之間存在依賴關係,則必須解決該問題。
要麼你刪除的NuGet使用,並且使用二進制依賴(沒有辦理入住手續的他們!),所以你必須建立所有(但如果你想用樹枝將是困難的)。
要麼你接受,使2個提交做一個更新(如你有多個Git倉庫做)。可以手動完成或通過構建自動完成。
PS:git的子模塊是困難的,不是很勸了git的用戶第一次......所以基於這樣一個解決方案將是:-(
疼痛。另一方面,一個單一的Git回購意味着更改任何方案導致一個新的完整的重建我們的TeamCity CI服務器上的所有解決方案。
不一定,你可以做出不同的構建爲每個解決方案,並設置每個TeamCity的觸發僅在自己的解決方案文件夾。
Ps2:我做了一個更長的回答,期待;-)我希望這會有所幫助...
如果你的團隊沒有很多的經驗與子模塊,然後我會建議對這一做法。子模塊在紙上很酷,但實際上它們確實會造成混亂。 – zypherman
「如果你沒有經驗與他們,不要獲得與他們的經驗」?如果你對他們有一個具體的問題,我會很有興趣知道這件事,但是這聽起來像是一種FUD的人,如果他們沒有 - 也不想 - 學習如何正確使用一個功能。 –