极客讨论器新增的“项目中搜索”模块可以在项目的工作区和版本库内进行搜索,支持 subversion 和 git 版本库。
搜索的结果除了有文件名,行号,行文本以外,还有所在版本号,以及字符串的修改状态(后面会详细介绍),如图:
双击搜索结果可以打开此版本此文件,并定位到搜索结果字符串上。
版本库内每个版本都有新增或者删除的内容,版本搜索除了可以在不变的内容中搜索,还可以在变更的内容中搜索,而且不变的内容不会重复搜索,这样就防止当第一个版本中定义了 main 函数,后面一千个版本中都有这个 main 函数,搜索字符串 main 找出一千个重复结果来。
所以极客讨论器的搜索结果包含有字符串的修改状态。新增的,用红色表示,删除的,用灰色+删除线表示。
下面用一个具体的例子来说明,以在 python 项目 V2EX 中搜索字符串 HomeHandler 的变更历史为例,新建一个“第三方开源项目”配置,在“源代码”选项页中填入 V2EX 的 github 版本库地址,其它保持缺省:
点击确定后,建议先等主界面的控制台上蓝色进度条填满以后再搜索,蓝色进度条表示的是版本库的本地映射库,出于效率方面的考虑,搜索仅在本地映射库中进行,映射了多少版本就搜索多少个版本。一旦第一次映射完成了,以后无需重复映射(除非作者 livid 发布了新版本):
切换到“项目中搜索”模块,打开搜索选项,填入要查找的字符串 HomeHandler ,注意缺省搜索位置是“在工作区基于工作拷贝”,改为“在版本库”:
点击确定,开始在所有版本(目前是 297 个版本)的所有文件(各版本文件数不一样,版本 297 有 471 个文件)中搜索 HomeHandler ,共找到 4 条结果:
前面三条都在版本一,是 HomeHandler 第一次出现在这三个位置,最后一条发生在版本 1 和 138 之间,带有删除线,表示在此处( 138 版的 template.py 的 36 行),有一个 HomeHandler 被删除了。
在这里有详细介绍,和下载地址,欢迎使用。
1
SoloCompany 2016-02-09 00:20:09 +08:00 1
现在是用 fisheye 感觉还行,主要有这些缺点
- 索引比较大 - 索引重建比较慢 - 只支持单个字符集,单 repo 多字符集貌似没有很好的识别或配置方案 |
2
cppgeek OP @SoloCompany 你说的是 atlassian 的 fisheye 是吧?
这个产品我们没有用过,它可以在 github/sourceforge 的版本库中搜索吗? |
3
SoloCompany 2016-02-09 01:53:39 +08:00 1
@cppgeek 基于本地 repo 的,只要是 git 可以 pull 下来自然能支持,而 sf 如果是基于 svn 的话,因为不能把整个 repo 抓下来一般而言是不能支持的,当然如果一个一个 revison 的抓下来做索引的话理论上也是能支持的但效率就太低了
|
4
cppgeek OP @SoloCompany 映射应该可以自动进行的,如果在远程库中搜索效率才低呢
需要占用一点本地硬盘空间,但是如果是重要的项目,比如正在开发的项目,或者正在研究的开源项目,应该不会吝啬这么一点硬盘空间吧 |