何千行ものコードを含む CSS ファイルがあります。このファイルを変更した各リビジョンに戻って確認せずに、コードの特定の行/チャンクがいつ変更されたかを確認したい (これにはかなりの時間がかかります!)
TortoiseHg、Eclipse と Mercurial プラグイン、またはコマンドラインを使用して、特定のコードの履歴を表示する方法はありますか?
正解はhg grep
( Mercurial 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');
(順番 - ファイル名、リビジョン、アクション、このリビジョンの文字列)
以下を使用できます。
hg annotate <file>
どのリビジョン行が変更されたかを調べ、最後に同じコマンドを使用し-r <revision>
てリビジョンをさかのぼります。
ファイルの特定の部分を表示するオプションはないと思います。ただし、いくつかのリビジョンにわたるファイル全体の違いを確認するには、次を使用できますhg diff
。
hg diff -r firstrevisionnumber:otherrevnumber filename
例えば、hg diff -r 0:8 screen.css
またはコマンドhg log screen.css
.