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 文件: 
    %~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

 
注:REpository:  選擇通過命令 svnindex create <Index> <Repository> [Options]創建的索引。
 
2.svnwebquery搭建及使用
 

效果

http://localhost/svnwebquery

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM