微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SVN搜索引擎

原文链接http://www.360doc.com/content/17/0825/10/1411057_681969650.shtml

 

SvnQuery 可以用来搜索Subversion版本资源库中的文件信息,就像Google可以帮您搜索网络上的页面信息。它会全文本搜索版本资源库中的内容和元数据,如文件名、路径、提交者和SVN的属性信息。
工作原理:
SvnQuery维护版本资源库的一个全文本索引(基于Lucene实现),这个索引可以用来快速查询。这个索引需要针对存在的版本资源库创建一次, 当版本资源库变更时,索引需要更新,这个更新通常由一个后提交钩子来触发。索引操作运作在后台分离的一个进程中,因此用户在提交后不会注意到任何延迟。另外,如果没有权限操作资源库,还可以选择调度更新,例如一天一次。在访问远程无法使用钩子的版本资源库时,这种方法很有用。在Window平台上,使用“任务计划程序”来运行调度任务。
SvnQuery的前端是一个ASP.NET web应用,和大多数搜索引擎类似。执行个查询,瞬间你就能看到查询得到的结果。你不仅仅可以搜索最新修订版本的信息,你还可以同时搜索任何修订版本或修订版本区间的信息。SvnFind是另外一个前端查询工具,运行在window平台上,可以直接用来查询创建的索引-不需要依赖Web服务器。核心库SvnQuery.dll实现了简单但强大的查询语言,特别适合查询代码版本资源库,希望其他应用、插件、工具能使用这个库文件

2. 如何下载SVNQuery?
SVNQuery的官方站点http://svnquery.tigris.org/,目前的最新版本为SvnQuery Version 1.2.2.0,下载地址为http://svnquery.tigris.org/SvnQuery_1.2.2.0.zip
解压后的目录结构如下:

    @H_502_18@├─SvnFind @H_502_18@│  │   SvnFind.exe @H_502_18@│  │  …… @H_502_18@├─SvnIndex @H_502_18@│  │  SvnIndex.exe @H_502_18@│  │  …… @H_502_18@└─SvnWebQuery @H_502_18@    ├─bin @H_502_18@    ├─scripts @H_502_18@    └─styles

因为是基于asp.net开发的,他只能运行在window平台上,并且需要在平台上安装.NET Framework 3.5.

SvnQuery 主要包括如下部分:

    @H_502_18@SvnIndex, 命令行工具,用来创建和更新全文本搜索索引 @H_502_18@SvnWebQuery, ASP.NET Web应用,用来查询搜索索引 @H_502_18@SvnFind, Window富客户端工具,用来查询搜索索引 @H_502_18@SvnQuery.dll, 编程库文件,可以编程来访问创建的索引文件 @H_502_18@RunDetached, 命令行工具,用来避免subversion等待钩子命令的完成
---------------------------------------------------------------------------------------

命令行工具SvnIndex用来维护subversion版本资源库的全文本索引,它包括两个子命令,分别用来创建、更新索引。 

svnindex create <Index> <Repository> [Options]

上述命令在指定的索引位置Index为位于Repository的版本资源库创建索引,会覆盖Index位置的内容. -r过滤器选项用来指定索引到的修订版本号,如果-r选项忽略,认为最新版本。取决你的版本资源库的大小,索引操作可能需要很长的一段时间,尽量少索引一些修订版本,确认基本的索引流程OK,然后更新索引到最新版本。 -f过滤器选项用来排除索引匹配指 
定的正则表达式的内容。例如,你或许需要排除tags文件夹下的内容,因为这个文件夹一般是些trunk或branches的备份。 
svnindex update <Index> <Repository> [Options] 
上述命令在指定的索引位置Index为位于Repository的版本资源库更新索引。Index 是在本地文件系统上的文件夹路径 ,Repository 是本地文件系统上的版本资源库的文件夹路径或 通过http、svn协议进行访问的有效url。 
使用 SvnIndex的例子

在我们的例子中,版本资源库位于 e:\Repository, 创建的索引文件位于e:\RepositoryIndex . 版本资源库由svnserve启动,位于server服务器上。

    @H_502_18@复制SvnIndex文件夹到你的版本资源库的hooks文件夹。 @H_502_18@使用下述命令创建初始的索引文件,取决于你的版本资源库的大小,可能需要花费些时间。 
    svnindex create e:\RepositoryIndex e:\Repository -x svn://server -n “Source Repository” -f “(/tags/)|(/branches/)” @H_502_18@在hooks文件夹下创建post-commit.cmd 文件 @H_502_18@粘贴下述内容到post-commit.cmd 文件
    %~dp0SvnIndex\RunDetached %~dp0SvnIndex\svnindex.exe update e:\RepositoryIndex e:\Repository -f “(/tags/)|(/branches/)” @H_502_18@完成!

更多的使用 SvnIndex的例子 
命令:c:\SvnQuery_1.2.2.0\SvnIndex>SvnIndex.exe create c:\myIndex http://192.168.1.130/demo1/   -u ken -p ken

其中 c:\myIndex是本地创建的索引文件夹, http://192.168.1.130/demo1/ 是远程版本资源库访问地址,-u、-p指定用户名密码

----------------------------------------------------------------------------------------

1.svnfind.exe

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

注:REpository:  选择通过命令svnindex create <Index> <Repository> [Options]创建的索引。 2.svnwebquery搭建及使用

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

 

 

效果

http://localhost/svnwebquery

SVN 搜索引擎 --svnquery(整理) - 纬龙沙 - 纬龙沙

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐