是否可以获取特定用户修改/添加/删除的所有文件的列表?
目标是了解用户当天(或日期范围)所做的事情。
答案 0 :(得分:49)
以下是使用svn log command和linux sed command以及您的用户名“blankman”的示例:
svn log | sed -n '/blankman/,/-----$/ p'
如果您希望通过持续报告获取此信息,那么使用像Patrick提到的StatSVN这样的项目非常有用。如果您使用的是Maven,则会有StatSCM plugin在您的项目网站上生成此信息。
答案 1 :(得分:16)
从Subversion 1.8开始,无需担心grep
,sed
等。 The release introduced --search
option that you can use with svn log
command!
这些选项允许您搜索存储库历史记录:
svn:author
无版权属性),svn:date
无版权属性),svn:log
无版权属性),答案 2 :(得分:7)
Shek的回答帮助我完成了我需要做的事情,但我发现通过以下调整我得到了更准确的结果:
svn log | sed -n '/ | blankman | /,/-----$/ p'
否则,该列表包括其他人通过名称引用我的提交。
答案 3 :(得分:5)
为什么不简单地使用陆龟SVN?
Totoise SVN - >显示日志 在左上角添加您要查看更改列表的用户ID
答案 4 :(得分:4)
这对我有用:
svn log | grep YOUR_USERNAME_HERE | awk '{print $1}' | sed s/r//g | xargs -I $ svn diff --summarize -c $ | sort | uniq
答案 5 :(得分:3)
是。我们使用StatSVN作为我们的subversion报告,其中一个报告是由开发人员提交的。
TortiseSVN还允许您按作者的日期查看日志消息。
答案 6 :(得分:3)
这是日期范围版本
svn log -v -r {“2011-01-01 00:00:00”}:{“2011-02-18 00:00:00”} | sed -n'/ russenreaktor /,/ ----- $ / p'
答案 7 :(得分:2)
我找到了这个有用的命令来查找给定用户的修改文件列表:
svn log -v -r{2012-08-01}:HEAD
| awk '/^r[0-9]+ / {user=$3} /./ {if (user=="username") {print}}'
| grep -E "^ M|^ G|^ A|^ D|^ C|^ U"
| awk '{print $2}'
| sort | uniq
答案 8 :(得分:0)
这是一个小脚本,用于显示修订版之间某个用户更改了哪些文件。
#!/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
答案 9 :(得分:-2)
为了查看特定用户在特定目录结构的subversion中更改的所有文件的列表,首先需要转到该目录结构,并在目录面板的右侧右键单击.. 然后, 转到显示日志 - >在最左上角我们得到过滤器选项。
此后,通过输入用户名,您可以在底部面板中看到该特定用户更改的所有文件。