11

我已经开始使用IPython notebook为我的论文撰写草稿部分。但是,给定草稿的两个版本(即笔记本),我希望能够生成某种形式的差异输出来显示发生了什么变化。有谁知道这目前是否可行,无论是通过 IPython 笔记本本身还是通过某些扩展?

4

8 回答 8

6

可以使用nbdime生成笔记本差异。安装 nbdime 后,您可以运行以下命令在浏览器中查看笔记本差异:

> nbdiff-web notebook_1.ipynb notebook_2.ipynb

如果您使用 Github 进行版本控制,您可以使用ReviewNB进行 Notebook diff。它允许您通过 Github 登录并浏览您的 repo 上的 commits/pull-request 差异。您将看到如下所示的视觉差异:

在此处输入图像描述

于 2018-11-20T18:16:56.677 回答
4

1- VS Code 已添加到其 2020 年 8 月版本, 请参见此处

2-尝试nbdime

于 2020-11-12T17:18:48.343 回答
3

自从回答了这个问题后,用于 IPython Notebook 的差异和合并工具 NBdiff 出现在 GitHub 上。不幸的是,它尚未针对 Jupyter / IPython 3 Notebook 格式进行更新。

于 2015-03-19T07:24:16.347 回答
3

距离最初的问题已经过去了很多时间,但这仍然是 2020 年的相关问题。今天有很好的解决方案。

正如 amirathi 提到的并提供了一个 CLI 示例,有nbdime用于在本地进行差异化。

我们在 DAGsHub 中也有笔记本差异,我们在与数据科学相关的拉取请求中使用它。

免责声明:我是DAGsHub的联合创始人

于 2020-10-11T12:47:04.593 回答
3

git issue中另一个看起来已经获得官方关注的实用程序是nbdime

于 2017-07-20T15:41:01.497 回答
3

尝试以下步骤:

  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

于 2021-07-19T16:34:59.470 回答
2

还没有。这是一个经常被请求的功能,但您可能想要不同的“级别”差异。你只想要codecell的差异,还是输出,提示号呢?等等等等

很多人都加入进来,但没有人真正花时间写任何东西,即使笔记本是非常“简单”的 json 文件,其中单元格“只是”需要“对齐”然后生成一个 diffed-json 笔记本。

于 2013-08-11T13:04:21.177 回答
1

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

差异 Jupyter 笔记本单元格

于 2021-03-24T10:55:02.770 回答