出于代码审查的目的,在修改现有的源文件之后,我们只审查那些源文件中已更改的代码行。
在我对存储库中的源文件进行更改后,在进行同行代码审查之前,我必须与源文件中已更改的代码行进行沟通。
我能够看到使用WinMerge的视觉差异,我对它为我做的事情感到高兴,但对我的同事的唯一要求是知道需要检查的文件名和行号。
有没有办法只获取更改过的文件的行号?文件的类型可以是文本源文件,例如Javascript、Java、XML、XSL等。
示例文件--
foo (新版本):
a
b
c
d
e
f
g
h
i
j
kfoo (旧版本):
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")视为简化的diff,但它太简单了。输出:
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 filediff -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提供的信息更少。有没有不同的忍者知道不同的选项来允许这样做?
我总是将最近修改的新文件与旧文件进行比较。我只需要在新文件上审查的东西。
发布于 2010-11-10 11:28:16
GNU DiffUtils是开源的,免费的,并且有a Windows port。
发布于 2014-01-23 03:23:31
将第一个文件保存为x.txt,将第二个文件保存为y.txt
然后运行:
比较行--未更改的行格式=“元”--新行格式=“:%dn:%L”y.txt x.txt | perl -pe‘s/元/\n/g’| perl -pe '$count++;if ($_ !~ /^\n$/){y.txt "$count\t";}‘
发布于 2010-11-10 05:59:53
我不知道有一种Windows原生方法,但我使用Textpad的“比较文件”功能来实现这一点,而且它相当不错。
https://stackoverflow.com/questions/4139083
复制相似问题