回答:
変更されたファイルのみを一覧表示する場合は、「ステータスコマンド」を使用する必要があります。次に、リビジョンREVのファイルへの変更を一覧表示します。
hg status --change REV
-n
/ --no-status
フラグも必要としています。
hg status --no-status --change REV
hg status --rev REV~1:REV
私が以前使用していたものよりも入力がはるかに簡単です。
hg status --change .
p
から削除するだけhg log -vpr
でファイルのリストが表示されます。-p
パッチを表示することを意味します。あなたも使うことができますテンプレートをて、好みに合わせて出力をフォーマットます。
hg status --change .
うまく機能し、ファイルアクションプレフィックス(A \ M \ Dなど)と相対的なパスが向上しました
質問は単一のチェンジセットに関するものであることはわかっていますが、すべてのファイルを一連のチェンジセット用に変更したい場合は、
hg status --rev 1 --rev 10 -m
hg log -r BEGIN:END --template "{files}\n"
、@ geoffrey-zhengと@tonが2年前に
hg status --rev BEGIN --rev END
です:1.より覚えやすいhg log -r BEGIN:END --template "{files}\n"
; 2. sed
(@Eric Lawler)またはjoin()
(@Foxichu)を使用せずに、ファイルを別々の行に出力します。3. -m
フラグがないと、変更されたファイルだけでなく、追加および削除されたファイルも表示されます(ここでも標準的なカラーリングが適用されます)。4. さまざまなフィルタリングを可能にするフラグが-a
あり-r
ます。5.ステータスプレフィックスが必要ない場合は-n
、それを抑制するオプションがあります。
同様の概念についてグーグルでこの質問を見つけました。一連のチェンジセットを通じて変更されたすべてのファイルを表示するには、次のように簡単です。
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}
し{files}
て、変更、追加、または削除されたすべてのファイルを表示します。sed -e 's/ /\n/g'
すべてのファイルを分割して別の行に表示し、sort
えーと、リストを並べ替えて、uniqでリストをフィルタリングできるようにしますuniq
リストをフィルタリングして重複(複数のリビジョンで変更されたファイル)を削除します。--template
これらの欠点のないベースのソリューションを使用して構築することができjoin()
@Foxichuによって示唆されているように。
私はこの質問が古い質問であることを知っており、OPから変更されたコードを提供した人がいないことに驚いています。を実行するだけで、変更/追加/削除されたファイルのリスト(どちらのラベルでもありません)を取得しましたhg log -v
。またはhg log -v -l5
、過去5回のコミットで変更/追加/削除されたファイル(実際にリポジトリにまだプッシュしていないものも含む)を表示するために実際に必要なもの。
あなたがほとんどのお店が好きなら、チケットシステムを使って変更を追跡します。チケット番号がわかっていて、そのチケットに関連付けられているすべてのコミットを検索したい場合(コミットメッセージにチケット番号を含める場合)、以下を使用できます。
hg log -k TICKET_NUMBER
これにより、チケットに関連付けられているすべてのリビジョンが表示されます。ただし、ファイルはリストされません。上記の回答の1つを使用して、リビジョンに関連付けられているファイルのリストを取得できます。
ただし、以前の回答の情報を組み合わせて簡単にするために、次のようにして、変更されたファイルを含むコミットを検索できます。
hg log -vk TICKET_NUMBER