在 subversion 或者 git 版本库中搜索代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
cppgeek

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

  •  
  •   cppgeek Feb 8, 2016 3293 views
    This topic created in 3731 days ago, the information mentioned may be changed or developed.

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

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

    4 replies    2016-02-09 02:22:08 +08:00
    SoloCompany
        1
    SoloCompany  
       Feb 9, 2016   1
    现在是用 fisheye 感觉还行,主要有这些缺点
    - 索引比较大
    - 索引重建比较慢
    - 只支持单个字符集,单 repo 多字符集貌似没有很好的识别或配置方案
    cppgeek
        2
    cppgeek  
    OP
       Feb 9, 2016
    @SoloCompany 你说的是 atlassian 的 fisheye 是吧?
    这个产品我们没有用过,它可以在 github/sourceforge 的版本库中搜索吗?
    SoloCompany
        3
    SoloCompany  
       Feb 9, 2016   1
    @cppgeek 基于本地 repo 的,只要是 git 可以 pull 下来自然能支持,而 sf 如果是基于 svn 的话,因为不能把整个 repo 抓下来一般而言是不能支持的,当然如果一个一个 revison 的抓下来做索引的话理论上也是能支持的但效率就太低了
    cppgeek
        4
    cppgeek  
    OP
       Feb 9, 2016
    @SoloCompany 映射应该可以自动进行的,如果在远程库中搜索效率才低呢
    需要占用一点本地硬盘空间,但是如果是重要的项目,比如正在开发的项目,或者正在研究的开源项目,应该不会吝啬这么一点硬盘空间吧
    About     Help     Advertise     Blog     API     FAQ     Solana     3278 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 13:28 PVG 21:28 LAX 06:28 JFK 09:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86