2015-07-21 59 views
1

我正在將一個相當大的項目遷移到Git。該項目分爲〜30k源代碼文件和〜100k個單元測試文件。如何處理大於100k測試文件的Git存儲庫?

我看到遷移兩種選擇:

(1)把所有文件到一個存儲庫。大量文件會使git操作變慢(請參閱here)。緩慢的操作會激怒我的開發人員(特別是因爲他們在Git速度較慢的Windows上工作)。順便說一下:文件大小對於這個項目來說不是問題。

(2)將測試文件放入具有Git子模塊的自己的存儲庫中。這會激怒我的開發人員,因爲他們在修正錯誤時總是必須執行2次提交。

你如何處理這種情況?有沒有第三種方式我沒有看到?

謝謝!

+0

是否有更合乎邏輯的拆分可以使代碼和測試保持在一起?但是跨功能層或技術層分開? – jessehouwing

+0

@jessehouwing這將是理想的。不幸的是,在遷移過程中重構代碼庫是不現實的。我想這些測試也比「單元測試」更「集成測試」。 –

回答

0

我仍然會推薦解決方案2,因爲子模塊是用於這種回購結構的。

另一種方法是爲每個開發人員指定他們所需要的文件夾,並做了sparse checkout,可能結合了shallow clone,以儘量減少當地回購的規模。
這樣,你仍然只處理一個Git倉庫,但只使用它實際需要的部分。

+0

感謝您的回覆。我寧願避免稀疏結帳和淺層克隆,因爲我認爲它們是「高級」Git功能。我們的大部分開發人員對Git來說都是新手。如果我在接受你的答案之前讓問題保持一段時間,我希望你沒問題。 –

+0

@LarsSchneider我明白了。並不是說這些功能只適用於最新版本的Git。在Windows上,您需要使用https://github.com/git-for-windows/git/releases/中的最新版本 – VonC