保存和管理所有版本的程序及其相关数据的好方法是什么?

时间:2015-08-08 20:56:15

标签: git version-control

我正在研究一个研究项目,我需要做的是修改程序(或编写新脚本)并生成数据。我想保存所有版本的程序和数据,以便我可以轻松地同时比较不同版本的程序 - 数据对。

我之前使用过一些方法:

  1. 手工管理所有内容:每次修改程序之前,我都会将未修改的版本和相关数据复制到一个文件夹中,然后修改并运行新程序。这有效,但不方便,有时我忘记执行此复制和粘贴步骤并丢失了一些版本。

  2. Git:这对版本控制有好处,但不容易直接比较不同版本的程序和数据,因为Git不能同时保存所有版本(例如,很难比较版本1 ,3,7,14个程序和数据)。

  3. 我想知道是否有其他方法可以保存和管理所有版本的程序及其相关数据?顺便说一句,我花了一半的时间在Windows上工作,另一半在Linux上工作。

    提前致谢!

1 个答案:

答案 0 :(得分:1)

您的问题并不完全清楚您在各种版本的程序生成的数据之间进行了哪些比较。但是,如果我假设计算结果的目标是在版本之间保持不变,那么您可能正在寻找的解决方案是(a)版本控制和(b)单元测试的组合。

使用git进行版本控制允许您在“已知良好状态”下提交代码。"你知道一个国家是好的"在提交之前是通过运行您编写的一系列单元测试。如果更改不会导致任何单元测试失败,那么您认为没有任何内容被破坏,并且您提交。如果您在代码中发现了一个错误,那么您编写的单元测试由于该错误而失败,然后编写一个"补丁"修复错误并导致测试通过。如果错误再次出现,您就会知道,因为测试将因更改而开始失败。

我已经在Linux上使用gitctest - 我知道它们也可以在Windows上使用,但我个人没有经验

但是,如果您确实需要保存数据:

  1. 如果数据量相当小,并且如果它是基于文本的,那么您可以将其与代码一起正确地提交。
  2. 如果数据量很大,或者是某种二进制格式,请查看git的large file storage扩展名。