python - 维护 ipython 笔记本的两个版本

标签 python json mercurial jupyter-notebook

我经常需要创建两个版本的 ipython 笔记本:一个包含要执行的任务(通常包括一些 python 代码和输出),另一个包含相同的文本和解决方案。我们将它们称为作业解决方案

很容易首先生成解决方案文档,然后剥离答案以生成作业(反之亦然)。但如果我随后需要进行更改(而且我总是这样做),我需要重复剥离过程。是否有合理的工作流程允许将分配中的更改传播到解决方案文档?

部分 self 回答:我已经尝试过利用mercurial的hg copy,这将使两个具有不同名称的文件共享历史记录。但只有当 assignmentsolution 位于两个链接的 hg 存储库中的不同目录中时,我才能使其正常工作。我更喜欢更简单的设置。我还注意到,当一个 JSON 文件比另一个文件包含更多部分时,diff 会变得非常困惑,从而使基于 VCS 的解决方案更没有吸引力。 (需要明确的是:在笔记本电脑上普通使用 VCS 是没问题的;只是并行版本会出现问题)。

This question涵盖了类似的基础,但并没有解决我的问题。事实上,我的问题的答案将解决OP的第二个剩余问题,“拉动更改”(请参阅​​更新部分)。

最佳答案

听起来您正在维护一项作业和某种答案键,并且希望能够将作业(没有解决方案)分发给学生,并且仍然为您自己或助教提供答案。

对于这样的事情,我会创建两个分支“未解决”和“已解决”。首先把问题写在“未解决”的分支上。然后从那里创建“已解决”分支并添加解决方案。如果您需要更新问题,请更新回“未解决”分支,进行更新并将更改 merge 到“已解决”并修复解决方案。

你可以尝试走另一条路,但我的预感是,从已解决到 Unresolved “倒退”可能会很奇怪。

关于python - 维护 ipython 笔记本的两个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24090606/

相关文章:

python - 识别一个数据集中的单独正态分布

Python i18n 使用 pygettext.py

javascript - 过滤嵌套的 JSON javascript

javascript - 将 Mongoose 返回的数组转换为常规 JSON

python - 构建 MercurialRecipe 在多次导入时中断

windows - 通过 ssh 从 cygwin 托管的存储库克隆到 Mac 和 FreeBSD 客户端时为 "(.hg not found)"

python - OSMnx: 最好在 "gdf_from_place"中指定位置

python - python中的时间序列分割

json - 为什么curl会截断内容?

mercurial - 如何保持 Mercurial 存储库较小?