什么时候做hg log -k
还不够,还有hg grep
是不是太慢了(大约 10 万个变更集)?我们对 Fisheye 的体验非常糟糕(太慢了),而且 Kiln 似乎将我们与 FogCreek 帝国联系在一起有点过分。
还有哪些其他选项可以通过存储库提供全文搜索功能?
最佳答案
您在全文搜索中寻找什么?如果您想知道添加文本时的修订版本,那就更容易了,如果您想知道存在文本的所有修订版本,那就更大了。
一般hg grep
在不预先构建索引的情况下,或者至少预先构建可以使用传统 grep 的版本化文件的情况下,速度与您将获得的速度一样快。
如果您愿意预先构建一个 grepable 文件结构,您可以执行以下操作:
hg export -o 'changeset-%r-%h.patch --rev 0:tip
这会将每个变更集导出到适合使用普通命令行 grep 进行 grep 或使用 lucene 或类似方法进行索引的文本文件。您可以使用
changeset
轻松保持当前状态。钩。只有更改集差异可以让您查找添加或删除文本的修订,而不是该文本存在的所有修订的列表。为此,您可以在每次修订时预先创建每个文件的副本,但即使很容易实现自动化,这也需要大量空间。
如果您正在寻找发生某些事情的特定修订版,另一种选择是确保您熟悉
hg bisect
.它会自动为您进行二分搜索,因此如果您想查找具有字符串 CHEESE
的第一个修订版你可以这样做:hg bisect --command "grep -s CHEESE" # might need to reverse the exit code of grep -s
尽管这会更新您的工作目录
hg grep
没有。
关于mercurial - 如何对 Mercurial 存储库进行全文索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4286416/