加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows中对两个文件执行差异时,获取两个文件中的差异行数

发布时间:2020-12-14 01:37:03 所属栏目:Windows 来源:网络整理
导读:出于代码审查的目的,在修改现有源文件之后,我们仅查看在这些源文件中已更改的代码行. 在对存储库中的源文件进行更改之后,我必须在进行同行代码审查之前传达源文件中已更改的代码行. 我能够看到使用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 FilesGnuWin32bin>diff.exe -q foo1.txt foo2.txt
Files foo1.txt and foo2.txt differ

正常差异输出:

C:Program FilesGnuWin32bin>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 FilesGnuWin32bin>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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读