16

我有一个分析图像的项目。该项目的测试数据 - 大约 15 GB 的图像。问题:鉴于需要存储多个版本并且大多数开发人员都需要这些数据,在哪里存储这些测试数据?

在与代码相同的存储库中?在具有外部参考的单独存储库中?

4

4 回答 4

11

I would agree with the other answers that it's a bad idea to keep this much test data in your repository. There are a couple of systems, however, that let you conveniently refer to (and download) large data from outside your git repository:

I'm afraid that I haven't used either for any serious purpose myself, but they sound like plausible solutions to what you want.

于 2012-04-23T11:41:43.167 回答
3

如果这些图像只是开发人员或想要运行测试的人需要,我可能会将它们放在一个子模块中,因为它们看起来相当大......

于 2012-04-23T08:31:39.797 回答
3

您需要将它们存储在单独的引用中,更适合这些类型的文件。

使用此处建议的Nexus 之类的工件存储库。 在您的 DVCS 存储库中添加从 Nexus 获取正确版本所需的脚本。

这样,您可以快速轻松地克隆源代码,并在需要时从第二个引用下载二进制文件。

于 2012-04-23T09:07:55.890 回答
2

有很多选择,但是您应该注意将任何解决方案正确地集成到您的 git 存储库中。

Git 是版本控制系统,更准确地说,它存储项目的快照列表。每个快照都代表您在某个时间点的项目。

无论您选择哪种解决方案,您的项目都应该可以提取项目历史中任何快照中存在的测试数据。

例如,如果每个图像都永久存在于一个固定的 URL 中,那么您的 git 项目可以简单地存储一个包含所有 URL 的文本文件。在运行时,让脚本获取每个图像。随着项目的发展以及在测试集中添加或删除图像,不要更改现有的 URL 方案。更新指针文件并提交。

另一个好主意可能是在每个 URL 记录图像的md5sha1哈希值。您的下载脚本应该在运行时进行比较以检查,因此您可以收到任何不一致的警告。

于 2012-04-23T09:22:54.167 回答