zoukankan      html  css  js  c++  java
  • 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

     
  • 相关阅读:
    python_获得列表中重复的项的索引
    sql的一些知识_高级
    464. Can I Win
    rankable cache class
    two sum class
    Generate a binary tree from parent->child relationship
    An implementation of this using bufferedReader:
    implement list use arrary
    12. Integer to Roman
    Partition of a set into K subsets with equal sum
  • 原文地址:https://www.cnblogs.com/victorfrost/p/12050330.html
Copyright © 2011-2022 走看看