在我目前的雇主,在主要构建之前,我们的项目负责人经常为我们修改过的每个文件请求一个diff文件(向他发送一个.zip文件)。 SmartSVN对于导出HTML diff文件很方便,但是我没有看到过为递归/修订中的每个文件递归生成一个的方法。我有一种感觉,这可能是通过命令行,但我也没有找到。我想构建一个脚本(可能在Python中),它会为修订中的每个更改文件递归生成一个diff文件,而不必单独执行每个文件。
目前这样的工具是否存在?如果没有,什么命令行工具/参数可以帮助我到那里?谢谢!
答案 0 :(得分:1)
如果您只需要差异,但不关心是否有一个差异文件,那么只需重定向svn diff
的输出,例如
svn diff -c myrevision path/to/repo > mydiff.patch
如果你真的需要每个文件的差异,你可以解析svn log
的输出来为每个文件创建差异,例如
for f in `svn log -qvr myrevision path/to/repo | grep " *[AMD]" | awk '{print $2}'`; do svn diff -c myrevision path/to/repo/$f > "`basename $f`.patch"; done
这将保存文件基本名称+ .patch
下每个文件的差异。