在 Windows 中对两个文件执行比较时获取两个文件中差异的行号

Zoo*_*oot 5 windows diff winmerge

出于代码审查的目的,在修改现有源文件后,我们仅审查这些源文件中已更改的代码行。
在对存储库中的源文件进行更改后,我必须在进行同行代码审查之前传达源文件中已更改的代码行。

我能够使用 WinMerge 查看视觉差异,并且我对它为我所做的事情感到满意,但我的同事的唯一要求只是知道需要检查的文件名和行号。

有没有办法只获取已更改文件的行号?文件类型是文本源文件,例如 Javascript、Java、XML、XSL 等。

样本文件——

foo(新版本):

a
b
c
d
e
f
g
h
i
j
k
Run Code Online (Sandbox Code Playgroud)

foo(旧版本):

a
b
C
d
h
i
k
Run Code Online (Sandbox Code Playgroud)

我正在寻找的输出:

foo: 3, 5-7, 10-11
Run Code Online (Sandbox Code Playgroud)

或者

foo:
3
5-7
10-11
Run Code Online (Sandbox Code Playgroud)

我确信某些程序允许这样做。我只是找不到一个。有什么建议么?我目前正在使用 WinMerge,但任何在 Windows 上运行的程序都适合我。如果该软件是开源或免费软件,那就更好了。

编辑:GNU DiffUtils 接近我想要的,但不完全符合我的需求。查看命令行选项,我将“-q”(或“--brief”)视为简化的差异,但它太简单了。输出:

C:\Program Files\GnuWin32\bin>diff.exe -q foo1.txt foo2.txt
Files foo1.txt and foo2.txt differ
Run Code Online (Sandbox Code Playgroud)

正常差异输出:

C:\Program Files\GnuWin32\bin>diff.exe foo1.txt foo2.txt
3c3
<     c
---
>     C
5,7d4
<     e
<     f
<     g
10,11c7
<     j
<     k
---
>     k
\ No newline at end of file
Run Code Online (Sandbox Code Playgroud)

diff -u 输出:

C:\Program Files\GnuWin32\bin>diff.exe -u foo1.txt foo2.txt
--- foo1.txt    2010-11-09 15:47:12.447916000 -0600
+++ foo2.txt    2010-11-09 15:47:36.129954700 -0600
@@ -1,11 +1,7 @@
     a
     b
-    c
+    C
     d
-    e
-    f
-    g
     h
     i
-    j
-    k
+    k
\ No newline at end of file
Run Code Online (Sandbox Code Playgroud)

我正在寻找比 diff -q 更丰富的信息,但比 diff -u 和 diff 的信息更少。任何差异忍者都知道有不同的选择来实现这一点吗?

我总是将最近修改的新文件与旧文件进行比较。我只需要新文件中需要检查的内容。

Ben*_*igt 3

GNU DiffUtils 是开源、免费的,并且有一个 Windows 端口