#diff #console #git #code-review #cli

app diffr

一个基于最长公共子串算法的 diff 高亮工具,可简化在终端中进行代码审查

6 个版本

0.1.5 2023 年 4 月 9 日
0.1.4 2020 年 3 月 19 日
0.1.3 2019 年 12 月 8 日
0.1.2 2019 年 9 月 7 日
0.1.1 2019 年 7 月 15 日

#113命令行工具 中排名

Download history 71/week @ 2024-03-13 25/week @ 2024-03-20 45/week @ 2024-03-27 31/week @ 2024-04-03 26/week @ 2024-04-10 32/week @ 2024-04-17 47/week @ 2024-04-24 29/week @ 2024-05-01 23/week @ 2024-05-08 23/week @ 2024-05-15 32/week @ 2024-05-22 39/week @ 2024-05-29 49/week @ 2024-06-05 40/week @ 2024-06-12 41/week @ 2024-06-19 48/week @ 2024-06-26

每月 191 次下载

MIT 许可证

100KB
3K SLoC

diffr

审查更改涉及阅读 diff。有时,以行为单位的更改展示并不足够精确,尤其是当更改涉及长行或非常相似的连续行时。

此程序处理此类 diff,并以文本属性的形式在统一 diff 格式之上输出它们(在控制台)。

它逐块工作,逐词重新计算 diff。

当前实现使用 Myers 的最长公共子串算法

crates.io crates.io Build Status

Demo Demo Demo

安装

Arch Linux

AUR 安装

git clone https://aur.archlinux.org/diffr.git
cd diffr
makepkg -si

Homebrew

brew install diffr

从源码安装

您需要安装 Rust 编译器

要安装最新发布的版本

cargo install diffr

或者,您可以构建开发版本

git clone https://github.com/mookid/diffr.git
cd diffr
cargo install --path .

如何使用它?

diffr 尝试成为一个行为良好的 Unix 程序:它从 stdin 读取输入并将其写入 stdout。

一次性使用

git show HEAD | diffr

与 git 集成

将以下部分添加到您的 .gitconfig 文件中

[core]
    pager = diffr | less -R
[interactive]
    diffFilter = diffr

或者,您可以直接从命令行运行

git config --global core.pager 'diffr | less -R'
git config --global interactive.difffilter diffr

颜色自定义

使用 --colors 标志。

您可以自定义添加和删除行的 diff 和常见段的显示。

例如,

diffr --colors refine-removed:background:200,0,0:foreground:white:bold

调整用于唯一删除文本的红色;

第一张截图使用的配置是

diffr --colors refine-added:none:background:0x33,0x99,0x33:bold --colors added:none:background:0x33,0x55,0x33 --colors refine-removed:none:background:0x99,0x33,0x33:bold --colors removed:none:background:0x55,0x33,0x33

显示行号

--line-numbers 显示块的行号。

这是对与 git 一起分发的 diff-highlight 脚本的改进。

git 本身提供了多个命令的 --word-diff--color-words 选项。

依赖项

~0–8MB
~46K SLoC