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
解压后的目录结构如下:

  1. ├─SvnFind
  2. │  │   SvnFind.exe
  3. │  │  ……
  4. ├─SvnIndex
  5. │  │  SvnIndex.exe
  6. │  │  ……
  7. └─SvnWebQuery
  8.     ├─bin
  9.     ├─scripts
  10.     └─styles

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

SvnQuery 主要包括如下部分:

  1. SvnIndex, 命令行工具,用来创建和更新全文本搜索索引
  2. SvnWebQuery, ASP.NET Web应用,用来查询搜索索引
  3. SvnFind, Window富客户端工具,用来查询搜索索引
  4. SvnQuery.dll, 编程库文件,可以编程来访问创建的索引文件
  5. 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服务器上。

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

更多的使用 SvnIndex的例子 
命令:c:SvnQuery_1.2.2.0SvnIndex>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

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

效果

http://localhost/svnwebquery

 
原文地址:https://www.cnblogs.com/victorfrost/p/12050330.html