2010-11-26 5 views
11

hg log -kが不十分で、hg grepがちょっと遅すぎる場合(cca.100kチェンジセット)はどうすればいいですか?私たちはFisheye(非常に遅い)で非常に悪い経験をしており、KilnはFogCreek帝国に私たちを結びつけているようです。Mercurialリポジトリをフルテキストインデックスする方法は?

リポジトリ全体でフルテキスト検索機能を提供するための他のオプションはありますか?

+0

お探しの機能は何ですか?コミットメッセージを検索するだけですか? –

+0

キルンは標準のMercurialをベースにしています。あなたがいつでも退出したいならば、ロックインはありません。コード検索(他のものの中でも)はもう得られません。 – tghw

答えて

2

フルテキスト検索では何をお探しですか?テキストが追加されたときのリビジョンを知りたい場合は、それが簡単です。また、テキストのサイズが大きいすべてのリビジョンを知りたい場合。

一般的に、hg grepは、インデックスを事前にビルドせずに、または少なくとも従来のgrepを使用できるバージョン管理されたファイルを事前にビルドせずに取得するほど高速です。あなたはgreppableファイル構造を事前に構築するために喜んでいる場合

あなたはこのような何かを行うことができます:通常のコマンドラインのgrepやインデックスを使用してgrepをするのに適したテキストファイルに出た各チェンジセットをエクスポートし

hg export -o 'changeset-%r-%h.patch --rev 0:tip 

ルーメンまたは同様のものを使用する。 changesetフックでその電流を簡単に維持することができます。

changset diffsのみを使用すると、テキストが追加または削除されたリビジョンを検索できますが、そのテキストが存在するすべてのリビジョンのリストは検索できません。そのためには、すべてのリビジョンですべてのファイルのコピーをあらかじめ作成することができますが、それは簡単に自動化することができますが、多くのスペースが必要です。

何か問題が発生した特定のリビジョンをお探しの場合は、hg bisectに精通しているかどうかを確認することもできます。それはhg grepにはない、あなたの作業ディレクトリを更新しても

hg bisect --command "grep -s CHEESE" # might need to reverse the exit code of grep -s 

:あなたはあなたのような何かができるCHEESE文字列を持っている最初のリビジョンを見つけたいので、もしそれが、あなたのためのバイナリ検索を自動化します。

関連する問題