我正在处理有关Scheme解释器(EOPL1)的文本。大多数问题涉及实现功能或修改现有实现。一些问题取决于以前的问题。
我希望为每个问题都有工作的口译员和测试用例,而不需要为每个练习复制粘贴整个解释器。以前我只是尝试加载前面的代码,然后重新定义各种函数,但这很糟糕:它很丑陋,很难分辨当前加载的代码,当我对模块进行少量更改时,它不会消除代码重复,并且会创建错误(例如,重新定义struct
定义时)。这有点难以管理。
我不想制作包含大量#ifdefs或等效文件的单片文件。对于(很多很多)VCS分支来说,这是一个理智的用例吗?如果没有,我该怎么办?
(如果此问题的标签不合适,请道歉。)
答案 0 :(得分:0)
您不应该要求任何分支机构。简单的版本控制就是您所需要的。对于这类工作,我建议Mercurial。对我来说,这是开箱即用的最简单,最容易使用的版本控制。替代方案是git,perforce或subversion。 (显然,还有很多其他的)
只需根据需要添加内容即可。它会跟踪您的修订。如果需要,你当然可以创建分支,或者你可以简单地为不同的练习标记东西。有许多可能的工作流程应该有效。虽然几乎任何东西都会比你现在做的更好。