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


67

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

目的是了解用户当天(或日期范围)的行为。


是否有等效于svn的cvs monitor?
Alex B

Answers:


52

这是一个示例,使用svn log命令linux sed命令,并使用用户名'blankman':

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

如果您希望通过连续报告来获取此信息,那么使用Patrick提到的StatSVN之类的项目非常有用。如果您使用的是Maven,则可以使用StatSCM插件在您的项目站点上生成此信息。


@JamieMcNaught,-username用于指定要与哪个用户进行身份验证。
sudarkoff 2012年

@sudarkoff是的,您是对的,因为它不正确,将其删除。不知道为什么我认为这可行。
jmc 2012年

2
还有就是svn log --search从SVN 1.8开始!subversion.apache.org/docs/release-notes/...
bahrep


7

Shek的回答帮助我完成了我需要做的事情,但是我发现通过以下调整我得到了更准确的结果:

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

否则,列表中将包含其他人所做的提交,这些提交仅按名称引用了我。


5

为什么不简单使用乌龟SVN?

Totoise SVN->显示日志在左上方添加您想要查看更改列表的用户ID


4

这对我有用:

svn log  | grep YOUR_USERNAME_HERE | awk '{print $1}' | sed s/r//g | xargs -I $ svn diff --summarize -c $ | sort | uniq

3

是。我们将StatSVN用于我们的Subversion报告,它所做的报告之一是开发人员提交的报告。

TortiseSVN还允许您按日期查看作者的日志消息。


3

这是日期范围的版本

svn log -v -r {“ 2011-01-01 00:00:00”}:{“ 2011-02-18 00:00:00”} || sed -n'/ russenreaktor /,/ ----- $ / p'


3

我发现此有用的命令可查找给定用户的修改文件列表:

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

以及原始文章链接


该文件实际上仅列出了特定用户触摸过的所有文件,从而回答了该问题。其他许多答案都不是那么准确。
boerre

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

-3

为了查看该列表,该文件将针对特定目录结构在Subversion中更改由特定用户更改的所有文件,然后首先需要转到该目录结构,然后在目录面板的右侧单击鼠标右键。然后,转到“显示”。日志->在最左上角有过滤器选项。

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


svn本身是基于命令行的。您的建议与周围的第三方图形界面有关
Vic
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.