是否可以获得由特定用户修改/添加/删除的所有文件的列表?
目的是了解用户当天(或日期范围)的行为。
Answers:
这是一个示例,使用svn log命令和linux sed命令,并使用用户名'blankman':
svn log | sed -n '/blankman/,/-----$/ p'
如果您希望通过连续报告来获取此信息,那么使用Patrick提到的StatSVN之类的项目非常有用。如果您使用的是Maven,则可以使用StatSCM插件在您的项目站点上生成此信息。
svn log --search
从SVN 1.8开始!subversion.apache.org/docs/release-notes/...
有没有必要与理会grep
,sed
等从Subversion 1.8开始。该发行版引入--search
了可以与svn log
command一起使用的选项!
这些选项使您可以在存储库历史记录中搜索:
svn:author
未版本控制的属性),svn:date
未转换的属性),svn:log
未版本控制的属性),这是一个小脚本,用于显示某个用户在修订之间更改了哪些文件。
#!/bin/bash
# @param $1: Start revision
# @param $2: End revision
# @param $3: User
#
# Example: svn_scapegoat.sh 1000:HEAD jdoe
svn_changed()
{
svn blame --revision $1:$2 -- $4 | grep -E "^ [0-9]* *${3} "
}
svn diff --revision $1:$2 --summarize | \
cut -c9- | \
while read path
do
if [ -n "$(svn_changed $1 $2 $3 $path)" ]
then
echo "$3 changed $path"
else
echo "Someone else changed $path"
fi
done