在subversion或者git版本库中搜索代码

623 查看

极客讨论器新增的“项目中搜索”模块可以在项目的工作区和版本库内进行搜索,支持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被删除了。

这里有详细介绍,和下载地址,欢迎使用。