我有一个分析图像的项目。这个项目的测试数据-大约15 GB的图像。问题:在哪里存储这样的测试数据,考虑到需要存储多个版本和大多数开发人员需要这些数据?在与代码相同的存储库中?在具有外部引用的单独存储库中?
a2mppw5e1#
我同意其他人的回答,在仓库中保存这么多测试数据是个坏主意,但是有几个系统可以让你方便地从git仓库外部引用(和下载)大量数据:
恐怕我自己还没有把这两种方法用于任何严肃的目的,但它们听起来像是你想要的似是而非的解决方案。
pkmbmrz72#
如果这些图像只是开发人员或想要运行测试的人所需要的,我可能会把它们放在一个子模块中,因为它们看起来相当大...
ubby3x7f3#
您需要将它们存储在一个单独的引用文件中,这样更适合这些类型的文件。使用像这里建议的Nexus这样的工件存储库。在您的DVCS存储库中添加从Nexus获得正确版本所需的脚本。这样,您就可以快速轻松地克隆 * 源代码 *,并在需要时从第二个引用中下载二进制文件。
bkhjykvo4#
有很多选择,但是你应该注意正确地将任何解决方案集成到你的git仓库中。Git是一个版本控制系统,更准确地说,它存储了项目的快照列表。每个快照代表了项目在某个时间点的状态。无论您选择什么解决方案,您的项目都应该能够提取项目历史中任何快照中存在的测试数据。例如,如果每个图像都永久地存在于一个固定的URL中,你的git项目可以简单地存储一个包含所有URL的文本文件。在运行时,让一个脚本获取每个图像。随着项目的发展,图像被添加到测试集中或从测试集中移除,不要改变现有的URL方案。更新指针文件并提交。另一个好主意是记录每个URL上的 md5 或 sha1 散列,您的下载脚本应该在运行时进行比较检查,这样您就可以在任何不一致的情况下得到警告。
4条答案
按热度按时间a2mppw5e1#
我同意其他人的回答,在仓库中保存这么多测试数据是个坏主意,但是有几个系统可以让你方便地从git仓库外部引用(和下载)大量数据:
恐怕我自己还没有把这两种方法用于任何严肃的目的,但它们听起来像是你想要的似是而非的解决方案。
pkmbmrz72#
如果这些图像只是开发人员或想要运行测试的人所需要的,我可能会把它们放在一个子模块中,因为它们看起来相当大...
ubby3x7f3#
您需要将它们存储在一个单独的引用文件中,这样更适合这些类型的文件。
使用像这里建议的Nexus这样的工件存储库。
在您的DVCS存储库中添加从Nexus获得正确版本所需的脚本。
这样,您就可以快速轻松地克隆 * 源代码 *,并在需要时从第二个引用中下载二进制文件。
bkhjykvo4#
有很多选择,但是你应该注意正确地将任何解决方案集成到你的git仓库中。
Git是一个版本控制系统,更准确地说,它存储了项目的快照列表。每个快照代表了项目在某个时间点的状态。
无论您选择什么解决方案,您的项目都应该能够提取项目历史中任何快照中存在的测试数据。
例如,如果每个图像都永久地存在于一个固定的URL中,你的git项目可以简单地存储一个包含所有URL的文本文件。在运行时,让一个脚本获取每个图像。随着项目的发展,图像被添加到测试集中或从测试集中移除,不要改变现有的URL方案。更新指针文件并提交。
另一个好主意是记录每个URL上的 md5 或 sha1 散列,您的下载脚本应该在运行时进行比较检查,这样您就可以在任何不一致的情况下得到警告。