分享

SVN 搜索引擎 --svnquery(整理)

 正则室 2017-08-25

2014-12-04 15:11:06| :

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

2. 如何下载SVNQuery?
SVNQuery的官方站点是http://svnquery./,目前的最新版本为SvnQuery Version 1.2.2.0,下载地址为http://svnquery./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 文件: 
    %~dp0SvnIndex\RunDetached %~dp0SvnIndex\svnindex.exe update e:\RepositoryIndex e:\Repository -f “(/tags/)|(/branches/)”
  • 完成!

更多的使用 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(整理) - 纬龙沙 - 纬龙沙

 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多