mercurial - 如何对 Mercurial 存储库进行全文索引?

标签 mercurial kiln atlassian-fisheye

什么时候做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/

相关文章:

mercurial - 是否可以将 Mercurial 提交与 JIRA 或 FishEye(通过 TortoiseHg 或 hg)集成?

Mercurial-在 "hg update -C"之后还原未提交的更改

python - 薄片 8's Mercurial hook raised an exception: ' ui' 对象没有属性 'configint'

mercurial - 如何将私有(private) Mercurial 存储库移动到中央服务器?

jira - 我可以使用 FishEye 智能提交解决问题的子任务吗?

atlassian-fisheye - 如何在EyeQL中为给定用户选择所有提交?

svn - 使用 mercurial 和 hgsubversion 时是否可以支持非英文注释?

version-control - 修复错误 merge

version-control - 为什么 Kiln 基于 Mercurial,而不是其他 (D)VCS

TFS vs FogBugz 窑