2015-07-21 57 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