0

ファイル内に複数の連続した行からなるコードがあり、このコードに影響を与えた履歴内のすべてのコミットを見つけたいとします。Mercurialでこれを行う方法はありますか?

AFAIK Mercurial はこのためのコマンドを提供していないため、単一の組み込みコマンドを意味するものではありません。したがって、これにはおそらくいくつかのコマンドを含む小さなスクリプトが必要です。

4

2 に答える 2

1

から始めたいと思うでしょうhg blame。これにより、各行を変更した最新のリビジョンが得られます。-rその後、オプションを使用しhg blameて履歴をさかのぼることができます。

任意の数のテキスト処理プログラムからリビジョン番号を抽出し、blameこのプロセスを自動化できます。

于 2014-11-05T16:50:05.800 に答える
0

履歴で文字列の不変部分がわかっている場合は、サイクル内の非難(および内部のロジック)の代わりに、hg grep --all ...(PATTERNは通常のテキスト文字列だけでなく、正規表現にすることもできます)を試すことができます。

最も簡単なサンプル (ハードコードされたパターンの場合、正規表現を作成するのが面倒です)

>hg grep --all DATE_FORMAT_ENTRY serendipity_lang_ru.inc.php
lang/UTF-8/serendipity_lang_ru.inc.php:9:-:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:9:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:7:-:@define('DATE_FORMAT_ENTRY', '%A, %e %B %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:7:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:3:-:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:3:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:0:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');

(これは最も明白な出力ですよね?)

于 2014-11-10T03:48:55.473 に答える