Svn Diff
最近碰到了svn merge
之后,再使用svn diff
产生出来的patch中缺少某些文件的信息。后来发现了原因。使用svn st
查看那些文件信息,类似于:
1 | A src/aa.c |
这样输出的patch中,aa.c是信息是都有的。cc.c也是有的。但是bb.c的信息不存在。主要是存在那个+
. +
的意思是这些文件存在于提交历史中,所以该文件不能再次被diff.但是为什么会存在于提交历史中,这个我就不知道了。
下面是教你如何去掉+
.
使用下面的脚本会方便的去掉各个文件的+
,对于目录的+
是不能去掉的.
1 |
|
1 | 上面脚本的工作原理是: |
这样所有的A +
状态就变为了A
。这样再使用svn diff
就可以得到完整的diff信息。如果有想法还可以处理一下文件夹。不过review code时,文件夹的意义并不大,所以就没有处理。这里顺便感谢下巧大牛。