如何在Stash中的所有存储库中的所有分支中搜索(grep)所有文件?

时间:2015-10-28 08:23:54

标签: git grep bitbucket-server

我们有一个托管我们的git repos的私人Atlassian Stash服务器。

如何搜索

  • 所有源文件
  • 所有分支中的
  • in all repos

我真的想避免在本地检出所有回购的过程,执行git pull然后递归grep

Atlassian Stash提供了一些插件,用于"企业搜索"但他们并没有为我们工作。

如果你有这个工作,请分享设置它的步骤:):)

3 个答案:

答案 0 :(得分:3)

我们还需要实施所有Stash项目的搜索。查看各种选项,最佳实施是安装专用的OpenGrok服务器 服务器的crontab每10分钟运行一次脚本,以执行以下操作:

  1. 使用Stash API
  2. 获取所有项目的列表
  3. 对于每个项目,获取所有存储库(再次使用API​​)
  4. 对于每个存储库,如果存在则克隆或拉取
    • 如果您需要每个分支,请找到所有分支并为每个分支克隆
  5. 准备好所有来源后,运行OpenGrok索引
  6. 它对我们非常有效,并且易于实施 我认为最终应该使用内置附加组件,但当时没有找到。

    我希望这会有所帮助。

答案 1 :(得分:2)

披露:我是Bitbucket(Stash)产品经理

正如其他人所说,这不是目前在产品中可用的东西。好消息是我们目前正致力于代码搜索。您的问题的坏消息是,出于性能原因(并且因为我们的研究中这是一个相对不常见的用例),我们只计划索引默认分支(通常是主分支)的提示。

如果你能够更详细地描述你想要实现的目标,我会很乐意研究其他选择。

一种选择是在服务器上的存储库中编写一系列“git grep”命令(假设您有访问权限)。您这样做需要您自担风险,不支持针对服务器上的repos运行的任何直接操作。

答案 2 :(得分:2)

根据Atlassian ticket来跟踪这一点,代码搜索是Bitbucket Server 4.6(又名Stash)中的内置功能。请参阅release notes