Version control 处理解释器文本--如何管理练习之间的代码依赖关系?

Version control 处理解释器文本--如何管理练习之间的代码依赖关系?,version-control,scheme,Version Control,Scheme,我正在阅读一篇关于方案口译员(EOPL1)的文本。大多数问题涉及实现一个特性或修改现有的实现。有些问题依赖于以前的问题 我希望每个问题都有工作口译员和测试用例,而不需要为每个练习复制粘贴整个口译员。以前,我尝试只加载以前的代码,然后重新定义各种函数,但这是不好的:它很难看,很难判断当前加载了哪些代码,当我对模块进行小的更改时,它不能消除代码重复,并且会产生错误(例如,当struct定义被重新定义时)。事情变得有点难以控制了 我不想制作一个包含大量IFDEF或等效文件的整体文件。这是(很多)风投分

我正在阅读一篇关于方案口译员(EOPL1)的文本。大多数问题涉及实现一个特性或修改现有的实现。有些问题依赖于以前的问题

我希望每个问题都有工作口译员和测试用例,而不需要为每个练习复制粘贴整个口译员。以前,我尝试只加载以前的代码,然后重新定义各种函数,但这是不好的:它很难看,很难判断当前加载了哪些代码,当我对模块进行小的更改时,它不能消除代码重复,并且会产生错误(例如,当
struct
定义被重新定义时)。事情变得有点难以控制了

我不想制作一个包含大量IFDEF或等效文件的整体文件。这是(很多)风投分支机构的合理使用案例吗?如果没有,我该怎么办


(如果此问题的标签不合适,我深表歉意。)

您不应该要求任何分支。您只需要简单的版本控制。对于这种类型的工作,我推荐。对我来说,这是最简单、最容易使用的现成版本控制。替代方案可能是,或者。(显然,还有很多其他的)


只要开始添加你需要的东西。它将为您跟踪修订。如果需要,您当然可以创建分支,或者您可以简单地为不同的练习标记内容。有很多可能的工作流程应该可以工作。尽管几乎任何事情都比你现在做的要好。

你不应该要求任何分支。您只需要简单的版本控制。对于这种类型的工作,我推荐。对我来说,这是最简单、最容易使用的现成版本控制。替代方案可能是,或者。(显然,还有很多其他的)


只要开始添加你需要的东西。它将为您跟踪修订。如果需要,您当然可以创建分支,或者您可以简单地为不同的练习标记内容。有很多可能的工作流程应该可以工作。尽管几乎任何东西都比您现在所做的要好。

许多扩展是互斥的,因此不可能仅基于解释器代码进行构建。因为我不想多次复制/粘贴基本解释器,所以我想知道分支。如果没有分支,你怎么解决这个问题呢?嗯,我不太确定,但是如果分支对你有意义的话,它可能是正确的方法。我从未编写过任何方案,因此我不熟悉您正在尝试做的事情。此外,我非常喜欢保留代码,如果您希望在任何地方都可以使用代码,这是另一种选择。许多扩展是相互排斥的,因此不可能仅基于解释器代码进行构建。因为我不想多次复制/粘贴基本解释器,所以我想知道分支。如果没有分支,你怎么解决这个问题呢?嗯,我不太确定,但是如果分支对你有意义的话,它可能是正确的方法。我从来没有写过任何方案,所以我不熟悉您试图做什么。此外,我真的很喜欢保留代码,如果您想在任何地方都可以使用代码,这是另一种选择。作为版本控制专家,我不会给出完整的答案,但对于具有轻量级分支的DVCS来说,这似乎是一个完美的用例。Git很好地处理了这些东西,但是它有一个比较陡峭的学习曲线(我仍然在上面——因此是评论,而不是完整的答案)。我相信Git专家可以给出更完整的答案。我不是版本控制专家,我不会发布完整的答案,但对于具有轻量级分支的DVC来说,这似乎是一个完美的用例。Git很好地处理了这些东西,但是它有一个比较陡峭的学习曲线(我仍然在上面——因此是评论,而不是完整的答案)。我相信Git专家可以给出更完整的答案。