在存储库中存储测试数据的位置



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

与代码在同一个存储库中?在具有外部引用的单独存储库中?

我同意其他答案,即在您的存储库中保留这么多测试数据是一个坏主意。 但是,有几个系统可以让您方便地从 git 存储库外部引用(和下载)大数据:

  • 乔伊·赫斯的 git 附件
  • Git Media by Scott Chacon

恐怕我自己没有出于任何严肃的目的使用过,但它们听起来像是您想要的合理解决方案。

如果这些图像仅供开发人员或想要运行测试的人需要,我可能会将它们放在子模块中,因为它们似乎相当大......

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

使用像Nexus这样的工件存储库,如此处的建议。
在您的DVCS存储库中添加必要的脚本,以便从Nexus获得正确的版本。

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

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

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

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

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

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

最新更新