Is there any way to run svn log on an entire repository (not just a checkout of trunk) without having to check it out?
Asked Answered
W

1

13

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?

Wicklund answered 20/8, 2010 at 11:54 Comment(0)
D
20

Sure, you can specify an URL to svn log:

svn log svn://server/repo
Dresser answered 20/8, 2010 at 11:56 Comment(3)
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.Wicklund
If you are in a working copy of repository, "svn log ^/" is a compact version of the command.Millner
can be also used with HTTP URL, svn log https:://svn.server.com/path/to/repoMordent

© 2022 - 2024 — McMap. All rights reserved.