git show
コマンドに依存する に基づく自動ツールを作成していgit diff
ます。git show の出力を解析するテキストとして受け取る小さなパーサーを作成しました。ほとんどの場合、結果の「@@」で始まる行は、比較する行を示します。
ただし、次のような状況に遭遇しました。
@@@ -460,22 -415,8 +460,22 @@@
どういう意味ですか?さらに微妙な意味を持つ「@」記号がさらに多く (4 つ以上) 存在する可能性はありますか?
結合された差分形式でマージを表示しています。のマンページを見ると、いつ使用され、どのように見えるかgit show
についての完全なセクションがあります。combined diff format
また、最初の説明では、結合された差分形式も参照するgit show
ようにマージが表示されると述べています。git diff-tree --cc
はい、3つ以上の@
シンボルが存在する可能性があります。親コミットごとに 1 つ + 1 あります。したがって、3 つの親とのマージ (いわゆる octupus マージ) がある場合、アットマークは 4 つになります。親が 4 人いる場合は、アットマークが 5 つあります。
マージでショーを行っているように見えますが、このハンクは両方の親とは異なります。それは説明でしょうか?