我有一个分析图像的项目。该项目的测试数据 - 大约15 GB的图像。问题:在哪里存储这样的测试数据,假设需要存储多个版本,大部分开发人员都需要这些数据?
在与代码相同的存储库中?在具有外部引用的单独存储库中?
答案 0 :(得分:10)
我同意其他答案,将这么多测试数据保存在您的存储库中是一个坏主意。但是,有几个系统可以方便地从git存储库外部引用(和下载)大数据:
我担心自己没有用于任何严肃的目的,但它们听起来似乎是你想要的合理解决方案。
答案 1 :(得分:3)
您需要将它们存储在单独的参考中,更适合这些文件。
使用Nexus之类的工件存储库作为proposed here 在您的DVCS回购中添加从Nexus获得正确版本所需的脚本。
这样,您可以快速轻松地克隆源,并在需要时从第二个参考中下载二进制文件。
答案 2 :(得分:2)
如果开发人员或想要运行测试的人员只需要这些图像,我可能会将它们放在子模块中,因为它们看起来相当大......
答案 3 :(得分:2)
有很多选项,但是您应该注意将任何解决方案正确地集成到您的git存储库中。
Git是修订控制系统,更确切地说,它存储了项目快照列表。每个快照代表您在某个特定时间点的项目。
无论您选择哪种解决方案,项目都应该可以提取项目历史记录中任何快照中存在的测试数据。
例如,如果每个图像永久存在于固定的URL中,则您的git项目可以只存储包含所有URL的文本文件。在运行时,让脚本获取每个图像。随着项目的发展以及在测试集中添加或删除图像,请不要更改现有的URL方案。更新指针文件并提交。
另一个好主意可能是在每个URL上记录图像的 md5 或 sha1 哈希值。您的下载脚本应该在运行时进行比较以检查,因此您可以收到任何不一致的警报。