List of all users who committed to a SVN repository

10

6

For a given SVN repository I need to determine a list of all users who ever committed anything to that repository. This repository is not the only one on the SVN server, but the list should be restricted to that repository.

user12889

Posted 2010-04-13T03:05:47.933

Reputation: 1 743

Can you parse svn log for the users that have committed changes? Or is checking out the repo not an option? – physicsmichael – 2010-04-13T04:41:49.043

Also, do you have python? =) – physicsmichael – 2010-04-13T04:42:28.670

Answers

18

While I started rewriting my python parsing, I realized a much better way to do what you asked (I parsed names and dates of submission to calculate weekend/weekday submission ratios to see who had no life!)

Check out the repo, then go to it and execute:

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

That gets a list of all the changes that have been commited, greps for the lines that start with the revision and number (r[12341] | author | date-and-stuff... ), prints out the third field (author), sorts the authors and gets rid of duplicates.

physicsmichael

Posted 2010-04-13T03:05:47.933

Reputation: 918

In case the names field contains a value with spaces (in my case I had commits from the user (no author)) adding -F ' [|] ' to awk will grab the entire name: svn log | grep '^r[0-9]' | awk -F ' [|] ' '{print $2}' | sort | uniq. – Quinn Comendant – 2015-04-13T03:00:58.337

@user12889: Your welcome. I just happened to see the right question at the right time. – physicsmichael – 2010-04-14T04:34:21.323

3

Light form of @DrummerB answer for usernames with spaces, combined with simplicity of @vgm64

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

Lazy Badger

Posted 2010-04-13T03:05:47.933

Reputation: 3 557

This also works for me - whereas @DrummerB's version didn't output anything – NickG – 2019-04-03T10:27:23.503

2

vgm64's answer is good, but it doesn't work well with names that contain spaces. I changed it, so it does:

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

DrummerB

Posted 2010-04-13T03:05:47.933

Reputation: 121

1

I know this thread is old but since some tutorials to convert SVN to Git are linking there, I add a command that will generate an Authors.txt file:

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

If this is an imported SVN, or if you stumble on the Not a working copy error, you can specify local path to SVN folder by adding file:///tmp/svn-repo after svn log -q

Albirew

Posted 2010-04-13T03:05:47.933

Reputation: 11