#diff #command-line-tool #patience #seen #patience-diff

bin+lib patience-diff-rs

将耐心 diff 实现为库和一个小型命令行工具

4 个版本

0.1.4 2020年2月7日
0.1.3 2020年2月7日
0.1.2 2020年2月7日
0.1.1 2020年2月7日

#3#耐心 中排名

每月下载量 35

MIT 许可证

16KB
319

这是什么?

这是 Bram Cohen 的耐心-diff 的实现。它旨在用作库,但也是一个小的命令行实用工具。

由于库尚未经过太多测试,因此我将其称为 0.1.x 版本 - 使用风险自负。

还有另一个实现。此包与此无关,在我尝试使用相同名称发布之前,我没有看到它。

API

use patience_diff_rs::{patience_diff, Hunk, Range};

fn main() {}
    let before = vec!["x", "y", "c", "z", "0"];
    let after = vec!["x", "b", "y", "z", "1"];
    assert_eq!(
        patience_diff(&before, &after),
        [
            Hunk {
                remove: Range { start: 1, end: 1 },
                insert: Range { start: 1, end: 2 }
            },
            Hunk {
                remove: Range { start: 2, end: 3 },
                insert: Range { start: 3, end: 3 }
            },
            Hunk {
                remove: Range { start: 4, end: 5 },
                insert: Range { start: 4, end: 5 }
            }
        ]
    );
}

示例输出

$ cargo run -- src/testdata/before.c src/testdata/after.c
    Finished dev [unoptimized + debuginfo] target(s) in 0.05s
     Running `target/debug/pdiff src/testdata/before.c src/testdata/after.c`
--- src/testdata/before.c	2020-02-07T15:27:43.828861414+00:00
+++ src/testdata/after.c	2020-02-06T15:23:53.584403913+00:00
@@ -2,6 +2,10 @@
     x += 1
 }

+void functhreehalves() {
+    x += 1.5
+}
+
 void func2() {
     x += 2
 }

依赖关系

~1.4–2.2MB
~41K SLoC