列出subversion中特定用户更改的所有文件

时间:2008-12-04 16:55:41

标签: svn

是否可以获取特定用户修改/添加/删除的所有文件的列表?

目标是了解用户当天(或日期范围)所做的事情。

10 个答案:

答案 0 :(得分:49)

以下是使用svn log commandlinux sed command以及您的用户名“blankman”的示例:

svn log | sed -n '/blankman/,/-----$/ p'

如果您希望通过持续报告获取此信息,那么使用像Patrick提到的StatSVN这样的项目非常有用。如果您使用的是Maven,则会有StatSCM plugin在您的项目网站上生成此信息。

答案 1 :(得分:16)

从Subversion 1.8开始,无需担心grepsed等。 The release introduced --search option that you can use with svn log command

这些选项允许您搜索存储库历史记录:

  • 修订版的作者(svn:author无版权属性),
  • 日期(svn:date无版权属性),
  • 日志消息文本(svn:log无版权属性),
  • 和受特定修订影响的路径。

请参阅SVNBook 1.8 | svn log command-line reference

答案 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

link to the original article

答案 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中更改的所有文件的列表,首先需要转到该目录结构,并在目录面板的右侧右键单击.. 然后, 转到显示日志 - >在最左上角我们得到过滤器选项。

此后,通过输入用户名,您可以在底部面板中看到该特定用户更改的所有文件。