是否有任何好的软件可以让我通过我的SVN资源库搜索代码片段?我找到了'FishEye',但成本是1,200,远远超出我的预算。
答案 0 :(得分:64)
如果您只搜索文件名,请使用:
svn list -R file:///subversion/repository | grep filename
视窗:
svn list -R file:///subversion/repository | findstr filename
否则结帐并进行文件系统搜索:
egrep -r _code_ .
答案 1 :(得分:37)
有sourceforge.net/projects/svn-search。
还有一个直接来自SVN家庭的Windows应用程序,名为SvnQuery,http://svnquery.tigris.org
答案 2 :(得分:11)
从Subversion 1.8, you can use --search
option with svn log
command开始。请注意,该命令不会在存储库中执行全文搜索,它仅考虑以下数据:
svn:author
无版权属性),svn:date
无版权属性),svn:log
无版权属性),以下是有关这些新搜索选项的帮助页面:
If the --search option is used, log messages are displayed only if the
provided search pattern matches any of the author, date, log message
text (unless --quiet is used), or, if the --verbose option is also
provided, a changed path.
The search pattern may include "glob syntax" wildcards:
? matches any single character
* matches a sequence of arbitrary characters
[abc] matches any of the characters listed inside the brackets
If multiple --search options are provided, a log message is shown if
it matches any of the provided search patterns. If the --search-and
option is used, that option's argument is combined with the pattern
from the previous --search or --search-and option, and a log message
is shown only if it matches the combined search pattern.
If --limit is used in combination with --search, --limit restricts the
number of log messages searched, rather than restricting the output
to a particular number of matching log messages.
答案 3 :(得分:10)
答案 4 :(得分:9)
git-svn
镜像。git log -S'my line of code'
或gitk
优点是您可以在本地进行多次搜索,而无需加载服务器和网络连接。
答案 5 :(得分:8)
此示例将存储库的完整内容传送到文件,然后您可以在编辑器中快速搜索文件名:
svn list -R svn://svn > filelist.txt
如果存储库是相对静态的,并且您想要快速搜索而不必重复加载SVN服务器中的所有内容,这将非常有用。
答案 6 :(得分:4)
我喜欢TRAC - 这个插件可能对您的任务有帮助:http://trac-hacks.org/wiki/RepoSearchPlugin
答案 7 :(得分:4)
只需注意,FishEye(以及许多其他Atlassian产品)都有10美元的简化版,在FishEye的情况下,它为您提供了5个存储库,并可访问最多10个提交者。 在这种情况下,钱会捐给慈善机构。
答案 8 :(得分:3)
痛苦地缓慢(并且粗略地实现)但是如果您正在搜索单个文件或小型存储库的历史记录,则svn log和svn cat的组合可以正常工作:
svn log filetosearch |
grep '^r' |
cut -f1 -d' ' |
xargs -i bash -c "echo '{}'; svn cat filetosearch -'{}'"
将输出文件更改的每个修订号和文件。您可以随时将每个修订版本放入另一个文件中,然后再进行更改。
PS。向任何向我展示如何正确执行此操作的人进行大量投票!
答案 9 :(得分:2)
如果你真的很绝望,可以转储回购(看看“svnadmin dump”),然后通过它进行grep。它并不漂亮,但您可以查看搜索结果以找到指示文件和修订版的元数据,然后查看它以获得更好的外观。
确定不是一个好的解决方案,但它是免费的:) SVN没有提供搜索过去签到(甚至过去的日志文件,AFAIK)的功能。
答案 10 :(得分:1)
很多SVN repos都是“简单”的HTTP站点,因此您可以考虑查看一些现成的“网络爬行”搜索应用程序,您可以指向SVN根目录,它将为您提供基本功能。更新它可能是一个小技巧,也许一些SVN检查hackery可以痒痒索引丢弃或重新索引更改。
大声思考。
答案 11 :(得分:1)
theres krugle和koders但两者都很贵。两者都有eclipse的ide插件。
答案 12 :(得分:1)
答案 13 :(得分:0)
//编辑:工具已在另一个答案中提及,因此将所有学分归还Kuryaki。
刚刚找到SupoSE这是一个基于java的命令行工具,它扫描存储库以创建索引,然后能够回答某些类型的查询。我们仍在评估该工具,但看起来很有希望。值得一提的是,它为所有修订版提供了完整的索引,包括源代码文件和常见的办公室格式。