我已经开始使用IPython notebook为我的论文撰写草稿部分了。但是,给定两个版本的草稿(即笔记本),我希望能够生成某种形式的diff输出来显示已经改变的内容。有没有人知道这是否可能,通过IPython笔记本本身,或通过一些扩展?
答案 0 :(得分:3)
还没有。这通常是一个请求的功能,但你可能想要的差异有不同的“级别”。 你只想要codecell的差异,还是输出,提示号码怎么样?等等。
很多人已经插手但是没有人真正花时间写任何东西,即使笔记本是非常“简单”的json文件,其中单元格“只是”需要“对齐”然后生成diffed-json笔记本。
答案 1 :(得分:2)
由于回答了这个问题,NBdiff,IPython Notebook的差异化和合并工具出现了on GitHub。不幸的是,它尚未针对Jupyter / IPython 3 Notebook格式进行更新。
答案 2 :(得分:2)
自提出最初的问题以来,已经过去了很多时间,但这在2020年仍然是一个相关的问题。今天有很好的解决方案。
有nbdime用于本地差异,正如amirathi提到的,并请提供一个CLI示例。
我们还有notebook diffing in DAGsHub,我们在Data-Science related pull requests中使用。
免责声明:我是DAGsHub
的联合创始人答案 3 :(得分:1)
答案 4 :(得分:1)
答案 5 :(得分:1)
尝试以下步骤:
nbdime
安装 pip install nbdime
。nbdime config-git --enable --global
与 Git 集成。nbdiff-web path/to/notebook.ipynb
。您可以选择忽略某些类型的单元格。例如,如果要忽略输出单元格,请键入:nbdiff-web --ignore-outputs path/to/notebook.ipynb
。
有关此处不同差异选项的更多信息: https://nbdime.readthedocs.io/en/latest/cli.html#common-diff-options
答案 6 :(得分:0)
笔记本差异可以使用nbdime生成。安装nbdime后,您可以运行以下命令在浏览器中查看笔记本差异:
max-width
如果您使用Github进行版本控制,则可以使用ReviewNB进行笔记本差异。它可以让您通过Github登录并浏览仓库中的commit / pull-request diff。您将看到如下所示的视觉差异:
答案 7 :(得分:0)
Curvenote 提供了一个 chrome extension,允许您将笔记本置于版本控制中,然后您可以区分单个单元格 nbdime
样式,还可以查看以前的输出(绘图、表格、流,...) 由不同版本的代码生成。