特定のチェンジセットで変更されたすべてのファイルを特定するにはどうすればよいですか?
この場合、差分を探しているのではなく、追加/削除/変更のリストだけを探しています。
hg log -vprX
はdiffのリストを実行しますが、ファイルだけが必要です。
変更されたファイルのみを一覧表示する場合は、「ステータスコマンド」を使用する必要があります。以下は、リビジョンREVのファイルへの変更を一覧表示します。
hg status --change REV
hg log -vpr
からp
を削除するだけで、ファイルのリストが表示されます。 -p
は、パッチの表示を意味します。 template を使用して、出力を好みに合わせてフォーマットすることもできます。
私は質問が単一のチェンジセットに関するものであることを知っていますが、一連のチェンジセットのためにすべてのファイルを変更したい場合は、
hg status --rev 1 --rev 10 -m
hg status --change .
.
は、Gitの@HEAD
と同様に、現在のリビジョンの省略形です。
hg status
hg status --change REV_ID
同様の概念については、グーグルを通じてこの質問を見つけました。 範囲の変更セットで変更されたすべてのファイルを表示するには、次のように簡単です。
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n" | sed -e 's/ /\n/g' | sort -d | uniq
hg log -r [start rev]:[end rev] --template "{file_mods}{file_adds}\n"
は、各チェンジセットで変更または追加された各ファイルのリストを[start rev]から[end rev]まで表示し、各チェンジセットのファイルを新しい行に表示します。スワップ{file_mods}{file_adds}
with {files}
変更、追加、または削除されたすべてのファイルを表示します。sed -e 's/ /\n/g'
は、すべてのファイルを分割して個別の行に表示し、sort
はリストをソートするので、リストをuniqでフィルタリングできます。uniq
は、リストをフィルター処理して重複(複数のリビジョンで変更されたファイル)を削除します。私はこの質問が古い質問であることを知っており、OPから変更されたコードを提供したばかりの人がいないことに驚いています。 hg log -v
を実行するだけで、変更/追加/削除されたファイルのリストを取得しました(どちらのラベルは付けられていません)。または、最後の5つのコミット(まだリポジトリにプッシュしていないものを含む)で変更/追加/削除されたファイルを表示するために実際に必要なhg log -v -l5
。