列出在颠覆中由特定用户更改的所有文件
是否有可能获得特定用户修改/添加/删除的所有文件的列表?
目标是了解用户在当天(或date范围)所做的工作。
下面是一个例子,用你的用户名'blankman'使用svn log命令和linux sed命令 :
svn log | sed -n '/blankman/,/-----$/ p'
如果您希望通过持续的报告获取这些信息,那么使用像Patrick提到的StatSVN这样的项目是非常有用的。 如果您使用的是Maven ,那么有一个StatSCM插件可以在您的项目网站上生成这些信息。
从Subversion 1.8开始,不需要打扰grep
, sed
等等。 发布引入 – --search
选项,您可以使用svn log
命令 !
该选项允许您search您的资料库历史logging:
- 修订版的作者(
svn:author
未版本化的属性), - date(
svn:date
未版本化的属性), - 日志消息文本(
svn:log
未版本的属性), - 以及受特定修订影响的path。
请参阅SVNBook 1.8 | svn log
命令行参考 。
Shek的回答帮助我完成了我需要做的事情,但是我发现我得到了更准确的结果,并进行了以下调整:
svn log | sed -n '/ | blankman | /,/-----$/ p'
否则,列表包含其他人提交的提交,只是简单地引用我的名字。
为什么不简单地使用乌龟SVN?
Totoise SVN – >显示日志在左上angular添加用户标识,您希望看到更改列表
这适用于我:
svn log | grep YOUR_USERNAME_HERE | awk '{print $1}' | sed s/r//g | xargs -I $ svn diff --summarize -c $ | sort | uniq
是。 我们使用StatSVN作为我们的颠覆报告,其中一个报告是由开发者提交的。
TortiseSVN也可以让你查看作者的date日志消息。
这是date范围的版本
svn log -v -r {“2011-01-01 00:00:00”}:{“2011-02-18 00:00:00”} | sed -n'/ russenreaktor /,/ —– $ / p'
我发现这个有用的命令来查找给定用户的修改文件列表:
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
并链接到原来的文章 。
这是一个小脚本,用于显示某个用户在修订版本之间更改了哪些文件。
#!/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
为了查看列表中的特定用户在一个特定的目录结构颠覆了所有的文件,那么首先你需要去那个目录结构,并在目录面板的右侧做一个右键点击..然后,去显示日志 – >在最左上angular我们得到filter选项。
此后通过放置用户的名称,您可以在底部面板中看到该特定用户所更改的所有文件。