最近在准备代码审核的东西,所以需要直接从SCM中取得源代码,源代码的审核主要包括以下几个方面的审核:

1、文件数量:统计原始的文件个数。
2、代码行数:文件中的源代码行数。
3、有效代码行数(Statements):根据特定规则统计的有效代码行数。
4、代码分支权重:代码复杂度的一个指标。
5、代码被调用的次数:按照单个文件统计文件中的代码被调用的次数。
6、注释所占用总共代码的比例。
7、类数量:统计类的数量
8、代码块大小平均统计
9、代码复杂度统计
10、代码缩进的深度。

这部分我想想,再整个专题说说看,o(∩_∩)o...

我们使用的是SVN作为SCM,这就需要读取SVN库中的数据,我首先想的是自己写代码,这样复杂度高,但是可控性强,我定位的代码类型为C#,所以关注的是C#下的SVN库。

首先找到的是DotSVN这个库,这个库和JAVA下面鼎鼎大名的SVNKit有着密不可分的关系,其设计思想就是从SVNKit中而来,可惜的是,这个库目前只支持file://协议,这对我来说无法接受,所以,这个库没有做深入的研究(大略看了一下代码,差就一个字)。

DotSVN:DotSVN has been hosted in google code at here,you can download source code and binary from this site.BTW,resharp is using this lib.
SVNKit: SVNKit is a pure java SVN client which has been hosted here.

然后我转移视线到了AnkhSVN.这是一个为Visual Studio做的插件,功能太强了,什么都有,一个完整的客户端,意味着他的代码也是非常复杂的,所以暂时观望

AnkhSVN is a Subversion plugin for Visual Studio. The software allows you to perform the most common version control operations directly from inside the Microsoft Visual Studio IDE. With AnkhSVN you no longer need to leave your IDE to perform tasks like viewing the status of your source code, updating your Subversion working copy and committing changes. You can even browse your repository and you can plug-in your favorite diff tool.

我关注的最后一个是COM封装的SubversionSharp库,这个库的源代码可以从此处下载

svn co http://svn.softec.st/clr/trunk/SubversionSharp

这个工程使用了另外一个工程APRSharp,下载地址为

svn co http://svn.softec.st/clr/trunk/AprSharp

这个库小,简单,没有什么多余的东西,那么就他了,呵呵。有个项目使用了这个库

SVNDotNet: svn co http://svn.pumacode.org/repos/svndotnet/trunk

最后一个商业组件VisualSVN,罢了,我不想破解也不想用。