解释;svn diff“;输出

解释;svn diff“;输出,svn,diff,Svn,Diff,假设a.c文件中没有任何内容,然后对该文件进行如下修改: #include <stdio.h> int main() { printf("Hello, world\n"); } 在代码中再添加一行: #include <stdio.h> int main() { printf("Hello, world\n"); printf("Goodbye, world\n"); } 我猜对于旧的(-)和新的(+)版本,逗号后的数字是显示的总数行。然而

假设a.c文件中没有任何内容,然后对该文件进行如下修改:

#include <stdio.h>

int main()
{
    printf("Hello, world\n");
}
在代码中再添加一行:

#include <stdio.h>

int main()
{
    printf("Hello, world\n");
    printf("Goodbye, world\n");
}
我猜对于旧的(-)和新的(+)版本,逗号后的数字是显示的总数行。然而,我不确定逗号前的数字。我认为这是变化的起点,但对于第一种情况,新(+)版本的数字是1而不是0

如何解释
svn diff
输出

我认为这是变化的起点,但对于第一种情况,新(+)版本的数字是1而不是0

行号从1开始,因此新(+)文件的
1,6
可以解释为:
1
是起始行号,
6
是显示的行数

行号的0必须是表示文件不存在的特殊情况。通过这种方式,您可以区分不存在的旧(-)文件-
0,0
-和维基百科上的空文件-
1,0

hunk range信息包含两个hunk range。范围为 原始文件的大块前面有一个减号,范围 对于新文件,前面有一个加号。每个大块头的范围都是 格式l,s,其中l是起始行号,s是编号 更改块应用于每个相应文件的行数。在许多方面 GNU diff的版本,每个范围都可以省略逗号和尾随值 s、 在这种情况下,s默认为1。请注意,只有 有趣的值是第一个范围的l行号;所有的 其他值可根据差异计算


SVN在哪里记录它使用统一的diff格式?
#include <stdio.h>

int main()
{
    printf("Hello, world\n");
    printf("Goodbye, world\n");
}
--- b.c (revision 2)
+++ b.c (working copy)
@@ -3,4 +3,5 @@
 int main()
 {
     printf("Hello, world\n");
+    printf("Goodbye, world\n");
 }
@@ -l,s +l,s @@ optional section heading