我使用nbdime
来区分和合并Jupyter笔记本电脑,除了对大型笔记本电脑来说有点慢,我喜欢它。但是,当我尝试从PyCharm中进行版本控制时,我的git设置似乎被忽略了,它会对.ipynb
文件进行文本差异。
我的.gitconfig
有以下内容,我相信在安装nbdime
时已设置:
[diff "jupyternotebook"]
command = git-nbdiffdriver diff
[merge "jupyternotebook"]
driver = git-nbmergedriver merge %O %A %B %L %P
name = jupyter notebook merge driver
[difftool "nbdime"]
cmd = git-nbdifftool diff \"$LOCAL\" \"$REMOTE\"
[difftool]
prompt = false
[mergetool "nbdime"]
cmd = git-nbmergetool merge \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"
[mergetool]
prompt = false
从命令行,这很好用。 (好吧,我从来没有做过合并,但差异很大。)
另外,我发现你可以在PyCharm中指定一个外部差异工具,但这似乎是一个全局设置。
有没有人让这个工作?
答案 0 :(得分:2)
矿山工程。我希望它更好地集成到JetBrains diff工具中。相反,它只是将差异弹出到浏览器窗口。
which git-nbdifftool
/Users/dork/miniconda/bin/git-nbdifftool
diff %1 %2
-s
仅差异来源使用它:
?
之前)。看起来像锤子和扳手。答案 1 :(得分:1)
@debugme的答案对我不起作用(在Windows下,使用Anaconda Python + PyCharm 2018.2 )。有三个问题:
nbdime
需要Python,但在Anaconda下,只有在激活相关的conda环境时,Python解释器才能全局使用(即在PATH
中)。nbdime
发生了变化-但我的PyCharm进行差异时仅传递两个参数,git-nbdifftool
期望为3。nbdime
,但我也希望它用于合并。所以,这对我有用:
使用以下命令创建批处理文件pycharm_nb_diff.bat
call %USERPROFILE%\AppData\Local\Continuum\anaconda3\Scripts\activate.bat nbdiff-web %* exit /b %errorlevel%
nbdiff-web
而不是git-nbdifftool
。activate.bat
在conda env中运行该工具(我使用的位置是Windows下的默认位置)。 conda-run
,它比activate.bat
更为可取,但目前仅在Linux下受支持。 现在将PyCharm设置为将pycharm_nb_diff.bat
与参数%1 %2
一起使用。
pycharm_nb_merge.bat
而不是nbmerge-web
创建nbdiff-web
,并将PyCharm设置为合并工具。请注意,合并所需的参数不同:--out %4 %3 %1 %2
exit /b %errorlevel%
行,您可以选中PyCharm中的信任进程退出代码框,并按预期方式合并工作。