gpt4 book ai didi

git - 让 TortoiseGit 在 jupyter 笔记本上使用 nbstripout 运行 git diff.textconv 过滤器

转载 作者:行者123 更新时间:2023-12-01 15:19:14 28 4
gpt4 key购买 nike

我已将 git 配置为使用 nbstripout 删除 jupyter notebook 输出在提交和差异之前。它在 git bash shell(在 Windows 中)中工作得很好。现在我想在 TortoiseGit 中拥有相同的功能。输出在提交时被正确剥离,但是从资源管理器上下文菜单运行 TortoiseGit 内部差异工具不会触发 nbstripout 在 .git/config 中配置的 git diff.textconv 过滤器:

[diff "ipynb"]
textconv = \"D:/Applications/Anaconda3/python.exe\" \"D:/Applications/Anaconda3/lib/site-packages/nbstripout.py\" -t

有没有办法在diff之前自动运行nbstripout?

我目前的解决方法是在运行 diff 之前手动删除笔记本输出。

最佳答案

从 2.7.0 开始,TortoiseGit 不支持 diff.textconv 过滤器。在 TortoiseGit 中使用高级差异设置:https://tortoisegit.org/docs/tortoisegit/tgit-dug-settings.html#tgit-dug-settings-Progs-Adv

.ipynb 文件的 Advanced Diff Viewer Settings 下配置为 C:\path\to\script.bat %base %mine 时,以下批处理脚本会完成这项工作.它首先运行 nbstripout 并在 TortoiseGit 差异查看器中打开剥离后的文件以及 %base 版本。

:: Run nbstripout on a jupyter notebook before opening it with TortoiseGit
:: Call Signature: nbstripout_TortoiseGit.bat %base %mine

:: Parameters and options
@echo off
set "python_exe=C:\path\to\python.exe"
set "nbstripout=C:\path\to\nbstripout.py"
set "tmpfilename=%temp%\nbstripout_tempfile_%USERNAME%_%RANDOM%.ipynb"
set "diffViwer=TortoiseGitMerge.exe"

:: Get cmdline arguments
set base=%1
set mine=%2

:: Strip output from notebook
%python_exe% %nbstripout% -t %mine% > %tmpfilename%

:: Open file in diff viewer
%diffViwer% %base% %tmpfilename%

:: Remove tmpfilename
del %tmpfilename%

关于git - 让 TortoiseGit 在 jupyter 笔记本上使用 nbstripout 运行 git diff.textconv 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53652881/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com