命令行工具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 -u ken -p ken其中 c:\myIndex是本地创建的索引文件夹, 是远程版本资源库访问地址,-u、-p指定用户名和密码。
执行结果日志如下:
c:\SvnQuery_1.2.2.0\SvnIndex>SvnIndex.exe create c:\myIndex http://192.168.1.130/demo1/ -u ken -p ken SvnIndex 1.2.2.0 Begin indexing ... Revision 1 Revision 2 Index /75XT890/01-Start/trunk/03-UXD/媒体云(包括家庭留言板)/媒体云v1.5同k610/流程图-云相册_files/u111_normal.png 1:99999999 ............ Index /85XT910/01-Start/trunk/05-UED/4k2k/手势控制/3切图/未点击切图/频道框.png 2:99999999 Index revision is now 2 Optimizing index ... Commit indexFinished in 00:02:55 |
创建索引后,就可以使用SVNFind来检查一下创建的索引了,上图: