when run svnindex.cmd, it always tell you "zero source files found"

after a painful diggin into svn.pm (the perl module to deal with svn), i found that:

 1. first, svn.pm invokes "svn info -R $SourceRoot" to get all version info of files in $SourceRoot (passed by /source option),

 2. then svn.pm stores all files in a dictionary which using the local file path as key

 3. svnindex.cmd call srctool -r to get all source files info in *.pdb, and use the source file name as a key to query info saved in step2

the problem is:

   svn.pm uses relative path, but *.pdb uses absolute path, so you will never find a svn log info for any file

 

fixup:

   change svn.pm line 162: 

$LocalFile = lc $1;

to   

$LocalFile = $SourceRoot . "\\" . lc $1; #make path absolute

 ==============================================

this bug is caused by the output format changes in svn 1.7, i found a more robust solution:

http://blog.aaronballman.com/svn.pm

 

posted on 2013-06-08 21:37  ellusak  阅读(316)  评论(0编辑  收藏  举报