有没有办法在两个版本的IPython笔记本之间生成差异?

时间:2013-08-11 12:37:24

标签: diff ipython ipython-notebook

我已经开始使用IPython notebook为我的论文撰写草稿部分了。但是,给定两个版本的草稿(即笔记本),我希望能够生成某种形式的diff输出来显示已经改变的内容。有没有人知道这是否可能,通过IPython笔记本本身,或通过一些扩展?

8 个答案:

答案 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)

git issue中另一个看起来具有官方牵引力的实用工具是nbdime

答案 4 :(得分:1)

1- VS Code已添加到2020年8月版 see here

2-尝试nbdime

答案 5 :(得分:1)

尝试以下步骤:

  1. 在终端上输入 nbdime 安装 pip install nbdime
  2. 通过在终端上输入 nbdime config-git --enable --global 与 Git 集成。
  3. 在终端上输入 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。您将看到如下所示的视觉差异:

enter image description here

答案 7 :(得分:0)

Curvenote 提供了一个 chrome extension,允许您将笔记本置于版本控制中,然后您可以区分单个单元格 nbdime 样式,还可以查看以前的输出(绘图、表格、流,...) 由不同版本的代码生成。

Diff Jupyter Notebook Cells