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

标签 windows diff winmerge

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

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

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

示例文件--

foo(新版本):

a
b
c
d
e
f
g
h
i
j
k

foo(旧版本):

a
b
C
d
h
i
k

我正在寻找的输出:

foo: 3, 5-7, 10-11

foo:
3
5-7
10-11

我确信某些程序允许这样做。我只是找不到一个。有什么建议么?我目前正在使用 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

正常差异输出:

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

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

我正在寻找比 diff -q 信息量更大,但比 diff -u 和 diff 信息量少的东西。那里有任何不同的忍者知道不同的选择来允许这样做吗?

我总是将最近修改的新文件与旧文件进行比较。我只需要在新文件上需要审核的内容。

最佳答案

GNU DiffUtils 是开源的、免费的,并且有 a Windows port .

关于windows - 在 Windows 中对两个文件执行差异时获取两个文件差异的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4139083/

相关文章:

windows - 如何在microsoft windows下使用ansible克隆git仓库

macos - 如何在 mac os 上从终端运行 TKDiff

c# - 使用 protobuf-net 为 c# 生成的文件与在 C++ 中生成的相同文件略有不同

svn - 如何使用 WinMerge 区分自定义文件列表

git - 如何告诉 Visual Studio 将 WinMerge 与 Git 结合使用?

c++ - 打印所有 std::locale 名称 (Windows)

java - 使用纯 C++ 或 Java 设置文件夹权限

linux - linux "comm"工具比较文件时如何显示行号

python - 在 python 中,生成突出显示两个简单字符串差异的 HTML

windows - 无法更改 Windows Universal 应用程序中 Hub 控件的标题