【问题标题】:Searching the SVN repository搜索 SVN 存储库
【发布时间】:2012-03-28 14:50:38
【问题描述】:

我浏览了这个网站和其他网站上的许多链接,但我找不到一个有用的链接来帮助我索引我的 SVN 存储库,然后允许我搜索任何内容 - cmets、作者、修订、文件名、文件内容等.

我需要一个工具来搜索我的完整存储库。我尝试了 SVN 搜索,它的 Indexer 部分给了我一个错误“svn: Malformed network data”。

还有一点我不想要任何命令行解决方案,我想要一个 UI。

即使我有任何索引器也会很有帮助,以便我可以在它之上开发自己的 UI。

PS - 研究了 SVN 查询,但没有获得任何资源。 SupoSE 看起来像一个封闭的项目,所以我正在考虑不使用它。

【问题讨论】:

  • 你可以使用Trac?
  • 我也看过 Trac,但我怀疑该项目是否仍受支持?

标签: svn search


【解决方案1】:

我不确定你的意思:

研究了 sVN 查询,但没有得到任何资源

网站:
http://svnquery.tigris.org/

维基:
http://svnquery.tigris.org/wiki/FrontPage

文档:
http://svnquery.tigris.org/servlets/ProjectProcess?pageID=o0dpdE

演示:
http://svnquery.tigris.org/servlets/ProjectProcess?pageID=g8GcCC

根据我的经验,SVNQuery 非常受欢迎、得到很好的支持并且是免费的。

【讨论】:

  • 我的意思是我没有获得 SVN 查询的源代码或可执行文件。我已经看过所有这些链接,但它们对此进行了描述,但没有任何帮助。无论如何感谢您的帮助。
  • 嘿,我还要问一件事,我们可以搜索作者,也使用 SVN 查询记录消息吗?
  • 是的,正如网站所说,“不仅文件的内容被索引,而且它的完整元数据,如路径、作者、cmets 和属性”。
【解决方案2】:

只是想法:

  • 将 SVN 存储库克隆到 Mercurial (hg + hgsubversion)
  • 使用原生 hg 工具在 repo 中搜索(grep、revsets /revset 的关键字/)

【讨论】:

  • 感谢您的回复,但我正在寻找 C# 或 Java 中的内容。所以为了将来的目的,如果我需要添加一些功能,我可以扩展它
【解决方案3】:

搜索颠覆的最佳工具是 SVNQUERY。该工具有助于建立索引,然后进行搜索。它提供了Web Searching 和windows 搜索的机制。即使它为您提供了 dll 以在您自己的应用程序中使用。有关 svn 查询的更多详细信息,请访问http://svnquery.tigris.org/

【讨论】:

    【解决方案4】:

    上面肯定有一些有效的建议;不想减损它们的相关性 - 但我发现它们对于我想要的东西都有些夸大了(只是想扫描我们所有的 svn 存储库以查找 Google Analytics UA 代码,所以我知道要迁移到 Firebase 的项目)所以我编写了自己的 bash 脚本:

    #! /bin/bash
    while read line; do
    svn checkout https://your-svn-server.com/$line
    find $line/ -type f -exec grep -H 'text you want to search for' {} \; >> svn-log.txt
    rm -rf $line
    done < svn-list.txt
    

    这会一一检查每个 repo;扫描它们,然后删除该 repo 的本地副本,然后签出下一个。 svn-lines.txt 是所有 svn 存储库名称的列表。该脚本假定您的 shell 已被授权签出列表中的所有存储库。您可以将“svn list”命令合并到此脚本中,而不是在 svn-list.txt 中列出所有存储库。我没有,因为我们的 SVN 服务器在顶层不支持该命令。

    找到包含搜索字符串的文件的信息存储在 svn-log.txt 中

    【讨论】:

      【解决方案5】:

      VisualSVN Server 4.2 支持按文件名或目录名搜索。在demo server 上试用此功能并从main download page 下载VisualSVN 服务器。


      旧答案

      --search 选项与svn log 命令一起使用。请注意,此命令不会在存储库中执行全文搜索,它仅考虑以下数据:

      • 修订的作者(svn:author 未版本化的属性),
      • 日期(svn:date未版本化的属性),
      • 日志消息文本(svn:log未版本化的属性),
      • 更改的路径列表(即受特定修订影响的路径)。

      【讨论】:

        猜你喜欢
        • 2010-09-20
        • 1970-01-01
        • 2010-10-16
        • 1970-01-01
        • 2010-10-22
        • 2012-10-15
        • 2012-07-21
        • 2011-04-11
        • 1970-01-01
        相关资源
        最近更新 更多