当hg log -k
还不够时该怎么办,而且hg grep
速度太慢(大约 100k 变更集)?我们在 Fisheye 方面的经历非常糟糕(太慢了),而且 Kiln 似乎将我们与 FogCreek 帝国联系得太紧密了。
还有哪些其他选项可以通过存储库提供全文搜索功能?
当hg log -k
还不够时该怎么办,而且hg grep
速度太慢(大约 100k 变更集)?我们在 Fisheye 方面的经历非常糟糕(太慢了),而且 Kiln 似乎将我们与 FogCreek 帝国联系得太紧密了。
还有哪些其他选项可以通过存储库提供全文搜索功能?
您在全文搜索中寻找什么?如果您想知道添加文本时的修订,那会更容易,如果您想知道所有存在文本的修订,那就更大了。
通常hg grep
,在不预先构建索引或至少预先构建可以使用传统 grep 的版本化文件的情况下,您将获得尽可能快的速度。
如果您愿意预先构建一个 greppable 文件结构,您可以执行以下操作:
hg export -o 'changeset-%r-%h.patch --rev 0:tip
这会将每个变更集导出到适合使用普通命令行 grep 进行 grepping 或使用 lucene 或类似方法进行索引的文本文件。changeset
你可以很容易地用钩子保持电流。
只有 changset diffs 可以让您查找添加或删除文本的修订,而不是该文本存在的所有修订的列表。为此,您可以在每次修订时预先创建每个文件的副本,但即使很容易自动化,这也是很大的空间。
如果您正在寻找发生某些事情的特定修订版,另一种选择是确保您熟悉hg bisect
. 它会自动为您进行二进制搜索,因此如果您想找到包含该字符串的第一个修订版,CHEESE
您可以执行以下操作:
hg bisect --command "grep -s CHEESE" # might need to reverse the exit code of grep -s
尽管这会更新您的工作目录,hg grep
但不会。
你看过罗德代码吗?-- http://demo.rhodecode.org/