我被要求审查与特定功能相关的所有提交,这些提交分别在SVN修订号为123、178、199、245和288中。如何合理地处理这个问题?我想以某种方式查看收集的差异,但我愿意听取建议。我们现在的修订版本号是400。
编辑:我想知道如何在subversion的命令行中执行操作,但任何在eclipse或intellij idea(或任何单独的应用程序)中有效的解决方案也可以。我故意开放对于实际上能自动化完成/获得工具支持的内容“是什么”的问题,因为我真的不知道如何以明智的方式做到这一点。
我被要求审查与特定功能相关的所有提交,这些提交分别在SVN修订号为123、178、199、245和288中。如何合理地处理这个问题?我想以某种方式查看收集的差异,但我愿意听取建议。我们现在的修订版本号是400。
编辑:我想知道如何在subversion的命令行中执行操作,但任何在eclipse或intellij idea(或任何单独的应用程序)中有效的解决方案也可以。我故意开放对于实际上能自动化完成/获得工具支持的内容“是什么”的问题,因为我真的不知道如何以明智的方式做到这一点。
生成五个不同的提交,并使用来自patchutils的combinediff将它们全部合并。
#!/bin/bash
REVISIONS=$@
LAST_REVISION="NULL"
MASTER="master" # path to WC
for THIS_REVISION in ${REVISIONS[@]};
do
if [ "$LAST_REVISION" != "NULL" ];
then
svn diff $MASTER -r ${LAST_REVISION}:${THIS_REVISION} --summarize | while read f;
do
echo ${f#* } | sed "s/[a-zA-Z0-9:\/.]*$MASTER\///" >> "$LAST_REVISION-to-$THIS_REVISION.log"
done
fi
LAST_REVISION=$THIS_REVISION
done
你可以这样调用它:"my_diff_script.sh rev1 rev2 rev3 rev4"
输出将会是:
rev1-to-rev2.log rev2-to-rev3.log rev3-to-rev4.log
您没有指定是基于HEAD还是每个连续的REV编号来生成差异(我不确定为什么您实际上想要这样做?(如果您不是有意提交,请不要提交))。
#!/bin/bash
for revision in 123 178 199 245 288;
do
svn diff http://path/to/svn/file@HEAD http://path/to/svn/file@$revision > $revision.diff
done
请各位 Windows 粉丝别因为我的回答涉及 bash shell 而不是 Windows shell(尽管原帖从未提到操作系统)而给我点踩。