Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/svn/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为修订中的每个更改文件生成SVN diff文件_Svn_Smartsvn - Fatal编程技术网

为修订中的每个更改文件生成SVN diff文件

为修订中的每个更改文件生成SVN diff文件,svn,smartsvn,Svn,Smartsvn,在我现在的雇主,在一个主要的构建之前,我们的项目负责人经常要求我们修改的每个文件都有一个diff文件(给他一个.zip文件)。SmartSVN对于导出HTML差异文件非常方便,但是我还没有看到一种方法可以递归地为提交/修订中的每个文件生成一个差异文件。我感觉这可能通过命令行实现,但是我也没有发现。我想构建一个脚本(可能是Python),它将递归地为修订版中的每个更改文件生成一个diff文件,而不必单独处理每个文件 现在有这样的工具吗?如果没有,有什么命令行工具/参数可以帮助我实现目标?谢谢 如果

在我现在的雇主,在一个主要的构建之前,我们的项目负责人经常要求我们修改的每个文件都有一个diff文件(给他一个.zip文件)。SmartSVN对于导出HTML差异文件非常方便,但是我还没有看到一种方法可以递归地为提交/修订中的每个文件生成一个差异文件。我感觉这可能通过命令行实现,但是我也没有发现。我想构建一个脚本(可能是Python),它将递归地为修订版中的每个更改文件生成一个diff文件,而不必单独处理每个文件


现在有这样的工具吗?如果没有,有什么命令行工具/参数可以帮助我实现目标?谢谢

如果您只需要diff,但不关心每个文件有一个diff,那么只需重定向
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

这会将每个文件的差异保存在files base name+
.patch

下,为什么不使用像ReviewBoard这样的代码复查应用程序(我自己没有使用过,只是听说过它-它不是唯一一个这样的应用程序),这样他可以随时查看您的更改?