svn diff输出不正确的结果

svn diff输出不正确的结果,svn,Svn,我试图使用以下命令区分两个文件: svn diff -r 6382:6383 RepositoryURL --extensions -U0 输出结果非常奇怪,显示整个文件被修改: @@ -1,1233 +1,1228 @@ 对于有1233行开始的文件,在进行修改后,文件末尾有1228行。但是,这些修改是本地化的(这里几行,那里几行),而文件的大部分保持不变 当我使用GUI通过右键单击repo>TortoiseSVN>Show log>navigate to apprope revision>

我试图使用以下命令区分两个文件:

svn diff -r 6382:6383 RepositoryURL --extensions -U0
输出结果非常奇怪,显示整个文件被修改:

@@ -1,1233 +1,1228 @@
对于有1233行开始的文件,在进行修改后,文件末尾有1228行。但是,这些修改是本地化的(这里几行,那里几行),而文件的大部分保持不变

当我使用GUI通过右键单击repo>TortoiseSVN>Show log>navigate to apprope revision>open in tortoiserven打开它时,这一点也得到了确认

在TortoiseMerge中,它只显示高亮显示的修改行,而不是整个文件。此外,如果我从Ortowise“创建补丁文件”,我会得到与我的命令完全相同的结果:

@@ -1,1233 +1,1228 @@
为什么
diff
功能显示整个文件都被修改了,而我得到了我认为正确的结果?我在想,也许用户在记事本程序中编辑了文件,然后将其复制过来,但它仍然能够检测到行是相同的

请注意,由于保密限制,我无法共享源代码,因此我依赖于精通
svn
的人的经验


谢谢

diff
认为文件已完全更改时,通常有两个潜在原因:

  • 行尾。不同的操作系统对行尾的相似性有不同的看法:
    \n
    \r\n
    \r
    。大多数开发人员工具都允许忽略此类更改,但有时该设置并没有在所有工具中一致应用。在十六进制编辑器中检查原始和更新的源代码文件,查看行尾是否存在差异

  • 空白更改:源代码通常使用空格或制表符缩进。某些IDE编辑器会自动将代码重新格式化为一个或另一个。因此,代码看起来是一样的,但空格缩进字符已被替换