0

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

目前是否存在这样的工具?如果没有,哪些命令行工具/参数可以帮助我到达那里?谢谢!

4

1 回答 1

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

于 2014-11-10T19:40:34.800 回答