有没有什么好的软件可以让我在SVN存储库中搜索代码片段?我找到了“ FishEye”,但费用是1,200,远远超出了我的预算。
svn log --search
选项,对于寻找简单的存储库历史记录搜索的人可能会很方便。
有没有什么好的软件可以让我在SVN存储库中搜索代码片段?我找到了“ FishEye”,但费用是1,200,远远超出了我的预算。
svn log --search
选项,对于寻找简单的存储库历史记录搜索的人可能会很方便。
Answers:
如果仅搜索文件名,请使用:
svn list -R file:///subversion/repository | grep filename
视窗:
svn list -R file:///subversion/repository | findstr filename
否则检出并进行文件系统搜索:
egrep -r _code_ .
有sourceforge.net/projects/svn-search。
SVN主页中也直接有一个Windows应用程序,称为SvnQuery,可从http://svnquery.tigris.org获得。
VisualSVN Server 4.2支持在Web界面中查找文件和文件夹。在演示服务器的一个存储库中试用新功能!
请参阅版本4.2发行说明,并从主下载页面下载VisualSVN Server 4.2.0 。
旧答案
从Subversion 1.8--search
svn log
开始,可以将option与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.
我喜欢TRAC-此插件可能对您的任务有所帮助:http : //trac-hacks.org/wiki/RepoSearchPlugin
痛苦缓慢(并且粗略实现),但是如果您正在搜索单个文件或小型存储库的历史记录,则可以将svn log和svn cat结合使用:
svn log filetosearch |
grep '^r' |
cut -f1 -d' ' |
xargs -i bash -c "echo '{}'; svn cat filetosearch -'{}'"
将输出文件更改的每个修订号和文件。您总是可以将每个修订放入不同的文件中,然后使用grep进行更改。
PS。大规模投票给任何向我展示如何正确执行此操作的人!
git-svn
。Git在提交历史记录中内置了代码搜索功能。但是您需要下载整个提交历史记录才能使用git-svn
。