例如,我有一个文件“Example.cs”,我想查看在修订版 800 和 1200 之间对此文件所做的所有更改。但是比较这两个修订版也会显示我不感兴趣的更改,因为我只想查看与在该文件上提交时输入的特定问题编号相关的代码更改。
有没有办法使用 Subversion/TortoiseSVN 查看这些?
例如,我有一个文件“Example.cs”,我想查看在修订版 800 和 1200 之间对此文件所做的所有更改。但是比较这两个修订版也会显示我不感兴趣的更改,因为我只想查看与在该文件上提交时输入的特定问题编号相关的代码更改。
有没有办法使用 Subversion/TortoiseSVN 查看这些?
选择 Blame 时,输入您要比较的修订号,但在我的 TortioseSVN 版本上,底部有一个名为“使用文本查看器查看责备”的复选框。这将在您的本地文本查看器中打开责备文件。
列用空格分隔,因此您可以在 MS Excel 中轻松打开它并将数据分类到列中。
最后为每一列添加一个过滤器,在“修订”列上,您可以勾选所有要查看更改的修订
用于救援的 Bash 脚本:
#!/bin/bash
FILE=file
ISSUE="#12"
for rev in $(svn log ${FILE} | grep ^r[0-9] | sed 's/r\([0-9]*\)\ .*/\1/g')
do
svn log -r${rev} | tail -n +3 | head -n -1 | grep "${ISSUE}" > /dev/null
if [ $? -eq 0 ]; then
svn diff ${FILE} -c${rev}
fi
done
上面的脚本搜索文件 FILE 的日志,存在于工作副本中,在提交消息中查找字符串 ISSUE 并将该修订的差异打印到命令行。