我们通常会在处理大型数据集时写代码进行分析 (比如一些每个文件都有1GB的数据)。
所有的分析代码都存在于Git中,这样每个人都可以把自己的代码变更提交到中央仓库中。但是对于代码所处理的数据集应该怎么办呢?
我希望将数据放入仓库中:
- 当用户首次克隆代码仓库时,数据应该与代码一同获取。
- 这些数据并不是100%只读的; 偶尔也可能会出现某个数据点需要更正或者轻微格式上的变化。如果数据进行了小修改,下次检出时要通知用户。
但是,我不希望将数据放入git仓库中:
- 如果再克隆一个副本(让我拥有两个版本),我就需要多下载几个GB的数据,而且我更愿意将其放入固定位置 [规定数据必须在~/data目录下] 或根据需要添加链接。
- 如果将数据放入仓库,那么复制到USB存储设备上可能会很麻烦,尤其是当我只是处理100行代码时。
- 如果修正了一个错误的数据点,我永远不会再看那个错误的版本了。数据集的更改可以通过纯文本文件或提供数据的人来跟踪(或根本不跟踪)。
看起来我需要建立一个主要代码仓库和一个辅助数据仓库。是否有任何方法可以优雅地在git中或POSIX环境下实现这一点呢?所有我所考虑的方式都有些丑陋。