tags:

views:

436

answers:

9

We are in the process of moving to SVN.

Unfortunately for us, we are audited periodically, where the auditors require information like:
Histories of changes to files
History of access to SVN
New files Added
Changes in files

Is there a tool which can produce these reports for us (or some of these)?

+2  A: 

svn log is the basic command to get the file related information you're looking for...

Jason Punyon
+2  A: 

You can have all of that information just through the SVN revision logs. You might want to consider a nice tool like Fisheye to do it for you though.

Kevin
A: 

Take a look at codesaga. It makes a good job of visualizing source control commits. I can't vouch for the reporting part.

Cristian Libardo
A: 

This program might help you out, not with audits, but updates

http://www.svnmonitor.com/default.shtml

  • Monitor the source for certain events
  • Receive notifications of any kind (balloon popups, tray icons, email, sounds, ...) when certain events occur
ccook
+4  A: 

Trac (http://trac.edgewall.com) can be used to view the SVN details. Trac has nice features like a changeset view that allows to see different changesets (and go back or forth through them). It also presents a nice UI , much better than ViewVC(www.viewvc.org)

rajasaur
In addition it is also an issue tracker and project management system (assign tasks to milestones, build a roadmap, etc).
stefpet
+1  A: 

SVN provides much of what you ask for right from the command line:

  • History of changes to a specific file/directory: svn log /your/path gives you source code diffs, authors, check-in dates etc.
  • New files added: svnlook changed -r <rev> <path to repository> gives you all files which were touched in the given revision. Loop over all relevant revisions, and grep for "A" which denotes added files.
  • Changes in files: svn diff -r <first rev>:<last rev> <path> gives you a diff of for the entire span of revisions
  • History of access to SVN: SVN obviously maintains a log of all check-ins (see svn log). As for reading access, I don't know of a builtin mechanism, however you can probably create your own with little effort, depending on the configuration. If you only allow http access, you can use the webserver's log files.

It's not pretty, but SVN's output is highly structured so you can do your own formatting easily.

Simon
svn log --xml gives you a full log output in xml which can be easier than parsing the free text.
jdkoftinoff
A: 

To see actual accesses to SVN, you'd need to parse the Apache server logs (assuming you're serving SVN over Apache).

orip
+1  A: 

Here are some that I have used before to give a glance at change activity reporting and trends. The filtering isn't perfect, but you can get the idea:

set REPO_URL=svn://localhost/...
set REVISION_START=1
set REVISION_END=HEAD 
set COMMAND=svn log %REPO_URL% -v -g -r %REVISION_START%:%REVISION_END% 
set REG_EXPRESSION="^...[ACDIMRX].\/"

Affected Configuration Items:

%COMMAND% | find /c "/"

Changesets:

%COMMAND% | find /c "Changed paths"

List of unique files that have been affected over the given revision range (I had cygwin installed):

%COMMAND% | findstr /r %REG_EXPRESSION% | sort | uniq -u
+2  A: 

sTATSVN is very light weight subversion report generator. http://www.statsvn.org/

  1. first generate the verbose log file

  2. run statsvn , it is a single jar file.

STATSVN provides list of metrics which file is changed most how many lines are added who is contributing more

etc

sundar venugopal