对于给定的 SVN 存储库,我需要确定曾经向该存储库提交过任何内容的所有用户的列表。此存储库不是 SVN 服务器上的唯一存储库,但列表应仅限于该存储库。
答案1
当我开始重写我的 python 解析时,我意识到一种更好的方法来完成你所要求的事情(我解析了姓名和提交日期来计算周末/工作日的提交比率,看看谁没有生活!)
检查 repo,然后转到它并执行:
svn log | grep '^r[0-9]' | awk '{print $3}' | sort | uniq
这将获取已提交的所有更改的列表,查找以修订和编号 () 开头的行r[12341] | author | date-and-stuff...
,打印出第三个字段(作者),对作者进行排序并删除重复项。
答案2
@DrummerB 回答的精简形式适用于带空格的用户名,并结合了 @vgm64 的简洁性
svn log -q | gawk -F "|" '/^r[0-9]/ { print $2 }' | sort -u
答案3
vgm64 的答案很好,但它对包含空格的名称不太适用。我修改了它,所以它确实如此:
svn log | grep '^r\do*' | sed 's_^r[0-9]* | \([^|]*\) | .*$_\1_g' | sort | uniq
答案4
Win Powershell 版本的@Albirew 的答案:
svn log -q | Select-String "^r" | ForEach-Object {
$parts = $_ -split '\|'
$author = $parts[1].Trim()
"$author = $author <$author>"
} | Sort-Object -Unique > Authors.txt