提交到SVN信息库的所有用户的列表


10

对于给定的SVN存储库,我需要确定曾经向该存储库提交任何内容的所有用户的列表。该存储库不是SVN服务器上唯一的存储库,但列表应限于该存储库。


您可以解析svn log已提交更改的用户吗?还是无法选择回购协议?
physicsmichael 2010年

另外,您有python吗?=)
physicsmichael 2010年

Answers:


19

当我开始重写python解析时,我意识到了一种更好的方法来执行您的要求(我解析了提交的名称和日期,以计算周末/工作日的提交比例,以查看谁没有生命!)

签出仓库,然后执行它:

svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq

它将获得已提交的所有更改的列表,对修订和数字(r[12341] | author | date-and-stuff...)开头的行进行摸索,打印出第三个字段(作者),对作者进行排序并消除重复项。


@ user12889:不客气。我只是碰巧在正确的时间看到正确的问题。
physicsmichael 2010年

如果names字段包含一个带有空格的值(在我的情况下,我是从用户提交的(no author)),则添加-F ' [|] '到awk中将获取整个名称:svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq
Quinn Comendant 2015年

3

@DrummerB答案的轻形式,用于带有空格的用户名,并结合了@ vgm64的简单性

svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u


这对我也有用-而@DrummerB的版本没有输出任何内容
NickG

2

vgm64的答案很好,但是它不能与包含空格的名称配合使用。我更改了它,所以它做了:

svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq

1

我知道这个线程很旧,但是由于有些教程将SVN转换为Git,所以我添加了一个将生成Authors.txt文件的命令:

svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > Authors.txt

如果这是一个导入SVN,或者如果你在跌倒Not a working copy的错误,您可以通过添加指定文件夹SVN本地路径file:///tmp/svn-reposvn log -q

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.