List all files changed by a particular user in subversion
SvnSvn Problem Overview
Is it possible to get a list of all files modified/added/deleted by a particular user?
The goal is to get an idea of what a user did for the day (or date range).
Svn Solutions
Solution 1 - Svn
Here's an example, using the svn log command and linux sed command, with your username, 'blankman':
svn log | sed -n '/blankman/,/-----$/ p'
If you're looking to obtain this information with continual reports, using a project like StatSVN, which Patrick mentioned, is very useful. If you're using Maven, there is a StatSCM plugin which will generate this information on your project site.
Solution 2 - Svn
There is no need to bother with grep
, sed
, etc starting from Subversion 1.8. The release introduced --search
option that you can use with svn log
command!
The options allows you to search your repository history for:
- revision's author (
svn:author
unversioned property), - date (
svn:date
unversioned property), - log message text (
svn:log
unversioned property), - and paths affected by the particular revision.
Solution 3 - Svn
Shek's response helped me with what I needed to do, but I found I got more accurate results with the following tweak:
svn log | sed -n '/ | blankman | /,/-----$/ p'
Otherwise, the list includes commits made by others that simply reference me by name.
Solution 4 - Svn
Why not simply use the tortoise SVN ?
Totoise SVN --> Show Log Add the user id on top left for which you would like to see the list of changes
Solution 5 - Svn
This works for me:
svn log | grep YOUR_USERNAME_HERE | awk '{print $1}' | sed s/r//g | xargs -I $ svn diff --summarize -c $ | sort | uniq
Solution 6 - Svn
Yes. We use StatSVN for our subversion reports, and one of the reports it does is commits by developer.
TortiseSVN also lets you look at log messages by date for authors.
Solution 7 - Svn
Here is the date-range version
> svn log -v -r{"2011-01-01 00:00:00"}:{"2011-02-18 00:00:00"}| sed -n '/russenreaktor/,/-----$/ p'
Solution 8 - Svn
I found this useful command to find a list of modified files by a given user:
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
And the link to the original article.
Solution 9 - Svn
Here's a small script to show which files were changed by a certain user between revisions.
#!/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
Solution 10 - Svn
In order to see the list all files changed by a particular user in subversion for a particular directory structure, then first you need go to the that directory structure and on the right side of directory panel do a right click.. then, go to Show Log-->on top most left corner we get filter option.
henceforth by putting the name of user you can see all the files changed by that particular user in the bottom panel.