2012-11-25 11 views
5

私は数千行のコードを持つCSSファイルを持っています。特定の行/コードが変更されたときに、このファイルを変更した各リビジョンを確認する必要はありません(これは時間がかかります)。Mercurial - 特定のコード行の履歴を見る方法

TortoiseHg、Eclipse Mercurialプラグイン、またはコマンドラインを使用して、特定のコードの履歴を表示できますか?

答えて

16

正解はhg grepMercurial grep page)です。

より深い:

hg grep --all "PATTERN" FILENAME 

出力例:

>hg grep --all "textdomain" functions.php 
functions.php:2:-:load_theme_textdomain('fiver', get_template_directory() . '/translation'); 
functions.php:2:+:load_theme_textdomain('fiver', get_template_directory() . '/languages'); 
functions.php:1:+:load_theme_textdomain('fiver', get_template_directory() . '/translation'); 

(順番に - ファイル名、リビジョン、アクション、今回の改訂では、文字列)

+1

--allは正しいフラグです。 -allは動作しません。 – Sasha

+1

私はこれが受け入れられているにもかかわらず、これは正解とは思わない。これにより、履歴中のファイル内の特定のパターンの出現が検索されます。歴史のなかでそのパターンにマッチする行が1行だけでなければ、ファイル内の特定の行の履歴は得られません。 'hg annotate'は正しい情報を提供しますが、イベントの完全な連鎖を得るためには、手動で履歴を飛び越えなければなりません。 – jwd

1

ファイルの特定の部分を表示するオプションはありません。たとえば、hg diff -r 0:8 screen.css

またはコマンドhg log screen.css

hg diff -r firstrevisionnumber:otherrevnumber filename 

:しかし、あなたがhg diffを使用することができ、いくつかの修正を完全にファイルの違いを確認してください。

hg annotate <file> 

したリビジョン行が変更された見つけるために、その後の改正を逆方向に行くために最後に-r <revision>と同じコマンドを使用します。

+0

これは知って良いですが、ありませんこの特定の状況に役立つものではありません。私は見直す範囲がわからないため、これまでの歴史では約3,000件の改訂があります。 –

13

あなたは使用することができます。

+0

ありがとう、これはちょうど私が必要としたものでした! –

+1

Blame show only:1.最近変更されたリビジョン2.現在削除されている文字列の情報を表示できません –

+1

残念ながら、これは非常に手作業です..: – user2864740

関連する問題