有没有办法包括使用时返回的每个文件的修订号
svn diff -r REV1:REV2 --summarize <URL>
是的,只需更改命令格式并使用 PEG 修订
svn diff --summarize <URL@REV1> <URL@REV2>
编辑:
--summarize
仅生成范围内受影响的列表(与 start 相比 end 的变化)文件
如果要获取范围内每个预定义的文件列表,则必须使用svn log -v -q
(或使用不带 --summarize 的 diff)
svn blame
会有用吗?这将向您显示特定版本更改了哪一行。
否则,您可以通过管道输出svn diff
to svn info
:
$ svn diff --summarize -r$rev1:rev2 $REPO_URL | while read status url
do
echo $url
svn info $url | grep "Last Changed Rev:"
done
输出将如下所示:
http://svn.vegicorp.com/trunk/project1/file1.txt
Last Changed Rev: 157264
http://svn.vegicorp.com/trunk/project1/file2.txt
Last Changed Rev: 157264
http://svn.vegicorp.com/trunk/project1/file3.txt
Last Changed Rev: 157264
http://svn.vegicorp.com/trunk/project1/file4.txt
Last Changed Rev: 157264
http://svn.vegicorp.com/trunk/project1/file5.txt
Last Changed Rev: 157264
如果您需要在同一行上的文件的修订和 URL,您可以使用printf
. 如果您不在 Unix 系统上,您可以使用Cygwin为您提供 BASH shell 和大多数标准的类 Unix 实用程序,您需要执行此类操作。否则,您将需要使用 PowerShell、Perl 或 Python 并对其进行编程。