当前位置:  开发笔记 > 编程语言 > 正文

搜索颠覆历史(全文)

如何解决《搜索颠覆历史(全文)》经验,为你挑选了8个好方法。

有没有办法对subversion存储库执行全文搜索,包括所有历史记录?

例如,我编写了一个我在某个地方使用过的功能,但之后就不需要了,所以我对这些文件进行了调整,但现在我需要再次找到它以将其用于其他内容.svn日志可能会说"删除未使用的东西"之类的内容,并且有大量的签名.

编辑2016-04-15:请注意,术语"全文搜索"在这里提到的是搜索提交历史的实际差异,而不是文件名和/或提交消息.我指出这一点是因为上面的作者的措词并没有很好地反映出来 - 因为在他的例子中他也可能只是寻找文件名和/或提交消息.因此有很多svn log答案和评论.



1> 小智..:
git svn clone 
git log -G


我倾向于使用此解决方案,因为将大型SVN存储库转换为GIT通常是不可行的,或者需要花费太长时间.这就像在有关C#语言结构的问题时推荐Java一样.
不是"svn log --verbose --diff | grep ..."而不必使用git就可以购买大致相同的功能吗?
请注意,这可能需要一段时间,具体取决于您的存储库的大小.对我来说,花了一个多小时.
您可能需要为此命令安装其他软件包。在Ubuntu上,您想`apt-get install git-svn`。

2> bahrep..:

svn log在Apache Subversion 1.8中支持一个新--search选项.因此,您可以在不使用第三方工具和脚本的情况下搜索Subversion存储库历史记录日志消息.

svn log --search 搜索作者,日期,日志消息文本和更改路径列表.

见SVNBook | svn log命令行参考.


方便,但不是全文搜索.我坚持使用git-svn的答案:-)
不是说目前svn repos on googlecode仍然在svn 1.6上运行...请参阅:https://code.google.com/p/support/wiki/SubversionFAQ#What_version_of_Subversion_do_you_use?但是,将您的客户端更新为1,8(以及任何已检出的repo的svn升级)将允许您在repo上使用svn log --search ...

3> Christian Ro..:

如果您正在运行Windows,请查看SvnQuery.它维护本地或远程存储库的全文索引.每个提交到存储库的文档都会被编入索引.您可以通过简单的Web界面进行类似Google的查询.



4> 小智..:

我使用的是一个小shellcript,但这仅适用于单个文件.您可以将此与find结合使用以包含更多文件.

#!/bin/bash
for REV in `svn log $1 | grep ^r[0-9] | awk '{print $1}'`; do 
  svn cat $1 -r $REV | grep -q $2
  if [ $? -eq 0 ]; then 
    echo "$REV"
  fi 
done

如果你真的想要搜索所有内容,请使用svnadmin dump命令并通过grep 查找.


这就是我们接受git的原因.

5> Jack M...:

我发现这样做的最好方法是:

svn log --verbose | 减

一旦少了输出,你可以点击/搜索,如VIM.

编辑:

根据作者的说法,他想要搜索的不仅仅是消息和文件名.在这种情况下,您需要与以下内容一起进行密集攻击:

svn diff -r0:HEAD | less

您也可以替换grep或其他东西来搜索您.如果要在存储库的子目录中使用它,则需要使用它svn log来识别该目录所在的第一个修订版,并使用该修订版而不是0.


这不是全文搜索,而是搜索日志和文件名.

6> Mike Schall..:

我一直在寻找类似的东西.我提出的最好的是OpenGrok.我还没有尝试过实现它,但听起来很有希望.



7> JREN..:
svn log -v [repository] > somefile.log

对于差异你可以使用该--diff选项

svn log -v --diff [repository] > somefile.log

然后使用vim或nano或任何你喜欢的东西,并搜索你正在寻找的东西.你很快就会发现它.

这不是一个花哨的脚本或任何自动化的东西.但它的确有效.



8> mrjabba..:

虽然不是免费的,但你可以看一下Atlassian的Fisheye,那些给你带来JIRA的人.它使用许多其他有用的功能对SVN进行全文搜索.

http://www.atlassian.com/software/fisheye/

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有