views:

16

answers:

1

I've got a Subversion repository that our Atlassian Fisheye instances nearly chokes on because of some accidental commits + backouts ( i.e., someone tagged the entire repository instead of just /trunk, and on more than one occasion). So what I want to do is audit the repo for larger-than-average commits, and carry out a dump+load to remove the bad commits using svndumpfilter. I'm having a little trouble getting the size of each revision though. I'm nearly there. I've got the following which determines the size of each revision visible using svn log with a trunk checkout:

for r in `svn log -q | grep ^r | cut -d ' ' -f 1 | tr -d r`; 
do echo "revision $r is " `svn diff -c $r | wc -c` " bytes";
done

However, because the bad commits happened outside the trunk, running svn log on the working copy (of trunk) does not list them. Instead I need the functionality of svn log to run repository wide. I COULD check-out the entire repository, but I don't have the days/weeks necessary to check-out all tags+branches. Can anyone help me here?

+3  A: 

Sure, you can specify an URL to svn log:

svn log svn://server/repo
Greg Hewgill
Thanks Greg, I also had to add the repo path after the "svn diff -c $r" buried in the command above, and it works perfectly.
David Corley