我经常需要创建两个版本的 ipython 笔记本:一个包含要执行的任务(通常包括一些 python 代码和输出),另一个包含相同的文本和解决方案。我们将它们称为作业
和解决方案
。
很容易首先生成解决方案文档,然后剥离答案以生成作业(反之亦然)。但如果我随后需要进行更改(而且我总是这样做),我需要重复剥离过程。是否有合理的工作流程允许将分配
中的更改传播到解决方案
文档?
部分 self 回答:我已经尝试过利用mercurial的hg copy
,这将使两个具有不同名称的文件共享历史记录。但只有当 assignment
和 solution
位于两个链接的 hg
存储库中的不同目录中时,我才能使其正常工作。我更喜欢更简单的设置。我还注意到,当一个 JSON 文件比另一个文件包含更多部分时,diff
会变得非常困惑,从而使基于 VCS 的解决方案更没有吸引力。 (需要明确的是:在笔记本电脑上普通使用 VCS 是没问题的;只是并行版本会出现问题)。
This question涵盖了类似的基础,但并没有解决我的问题。事实上,我的问题的答案将解决OP的第二个剩余问题,“拉动更改”(请参阅更新部分)。
最佳答案
听起来您正在维护一项作业和某种答案键,并且希望能够将作业(没有解决方案)分发给学生,并且仍然为您自己或助教提供答案。
对于这样的事情,我会创建两个分支“未解决”和“已解决”。首先把问题写在“未解决”的分支上。然后从那里创建“已解决”分支并添加解决方案。如果您需要更新问题,请更新回“未解决”分支,进行更新并将更改 merge 到“已解决”并修复解决方案。
你可以尝试走另一条路,但我的预感是,从已解决到 Unresolved “倒退”可能会很奇怪。
关于python - 维护 ipython 笔记本的两个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090606/