11

hg log -k还不够时该怎么办,而且hg grep速度太慢(大约 100k 变更集)?我们在 Fisheye 方面的经历非常糟糕(太慢了),而且 Kiln 似乎将我们与 FogCreek 帝国联系得太紧密了。

还有哪些其他选项可以通过存储库提供全文搜索功能?

4

2 回答 2

2

您在全文搜索中寻找什么?如果您想知道添加文本时的修订,那会更容易,如果您想知道所有存在文本的修订,那就更大了。

通常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但不会。

于 2010-11-26T21:01:31.857 回答
2

你看过罗德代码吗?-- http://demo.rhodecode.org/

于 2011-06-07T19:13:45.080 回答