如何限制 gitk 中显示的差异行数?

How to limit number of diff lines shown in gitk?

正在寻找 option/workaround 来限制任何特定文件的差异内容(显示在底部面板中)(例如,仅限前 N 行),因为 patch/diff 可能太大并且导致 GUI 冻结。我确实尝试了 git diff 接受的不同选项,但没有看到任何方法将它们传递给 gitk(与 git-gui 不同)。请注意,限制上下文行数不起作用,因为差异仍将显示为零上下文。

您将不得不更改gitk 的源代码。这是一个很大的 Tcl/Tk 文件,您可以直接编辑或制作副本。它的位置可能取决于您的操作系统。如果您使用的是 linux 或 macos,则可能是 /usr/bin/gitk/usr/local/bin/gitk

在程序 diffcmd 内,更改此行:

set cmd [concat | git diff-tree -r $flags $ids]

您可以添加 diff-tree 个参数,或者简单地将 diff 输出通过管道传递给另一个程序,例如 head:

set cmd [concat | git diff-tree -r $flags $ids | head -n500]

这适用于完整的差异,而不仅仅是一个文件。