web-dev-qa-db-ja.com

Mercurial-変更セットで変更されたすべてのファイル?

特定のチェンジセットで変更されたすべてのファイルを特定するにはどうすればよいですか?

この場合、差分を探しているのではなく、追加/削除/変更のリストだけを探しています。

hg log -vprXはdiffのリストを実行しますが、ファイルだけが必要です。

89
Marcus Leon

変更されたファイルのみを一覧表示する場合は、「ステータスコマンド」を使用する必要があります。以下は、リビジョンREVのファイルへの変更を一覧表示します。

hg status --change REV
138
pyfunc

hg log -vprからpを削除するだけで、ファイルのリストが表示されます。 -pは、パッチの表示を意味します。 template を使用して、出力を好みに合わせてフォーマットすることもできます。

15
Geoffrey Zheng

私は質問が単一のチェンジセットに関するものであることを知っていますが、一連のチェンジセットのためにすべてのファイルを変更したい場合は、

hg status --rev 1 --rev 10 -m
11
Nick DeVore

現在コミットされている改訂

hg status --change .

.は、Gitの@HEADと同様に、現在のリビジョンの省略形です。

現在の非コミット版

hg status

任意のコミットされた改訂

hg status --change REV_ID
7
Gibolt

同様の概念については、グーグルを通じてこの質問を見つけました。 範囲の変更セットで変更されたすべてのファイルを表示するには、次のように簡単です。

hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" | sed -e 's/ /\n/g' | sort -d | uniq
  1. hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"は、各チェンジセットで変更または追加された各ファイルのリストを[start rev]から[end rev]まで表示し、各チェンジセットのファイルを新しい行に表示します。スワップ{file_mods}{file_adds} with {files}変更、追加、または削除されたすべてのファイルを表示します。
  2. sed -e 's/ /\n/g'は、すべてのファイルを分割して個別の行に表示し、
  3. sortはリストをソートするので、リストをuniqでフィルタリングできます。
  4. uniqは、リストをフィルター処理して重複(複数のリビジョンで変更されたファイル)を削除します。
2
Eric L.

私はこの質問が古い質問であることを知っており、OPから変更されたコードを提供したばかりの人がいないことに驚いています。 hg log -vを実行するだけで、変更/追加/削除されたファイルのリストを取得しました(どちらのラベルは付けられていません)。または、最後の5つのコミット(まだリポジトリにプッシュしていないものを含む)で変更/追加/削除されたファイルを表示するために実際に必要なhg log -v -l5

0
Đorđe Relić