おもちゃのリポジトリで機能するドラフトがありますが、パッチ->コミットマップをメモリに保持しているため、大きなリポジトリで問題が発生する可能性があります。
# print commit pairs with the same patch-id
for c in $(git rev-list HEAD); do \
git show $c | git patch-id; done \
| perl -anle '($p,$c)=@F;print "$c $s{$p}" if $s{$p};$s{$p}=$c'
出力は、同じパッチIDを持つコミットのペアである必要があります(3つの重複ABCは、「A B」、次に「B C」として出力されます)。
git rev-listコマンドを変更して、チェックされるコミットを制限します。
git log --format=%H HEAD somefile
コミットの詳細を表示するには「|xargsgitshow」を追加し、要約を表示するには「| xargs git show-s--oneline」を追加します。
0569473 add 6-8
5e56314 add 6-8 again
bece3c3 comment
e037ed6 add comment again
後のコミットで追加の変更があったため、元のケースではpatch-idが機能しなかったことがわかりました。「gitlog-S」の方が便利でした。