説明できないPERFORCEの動作を見てきました。私はトランクのブランチを取得し、定期的に変更をコミットし、時々トランクからブランチにマージして、再統合時に大きな競合が発生しないようにしました。
この作業が完了したら、Perforceのマージ/統合オプションを使用して変更をトランクに適用しました。コードレビューのためにこれらの変更を送信した後、トランクにいくつかの変更を加えました。この時点では、変更はトランクにコミットされていませんでした。
これらすべての変更をコミットしようとすると、diffは期待どおりにファイルを表示しました。変更リストを送信した後、送信された変更は、差分ウィンドウに表示されたものと同じではありませんでした。代わりに、Merge/Integrate以降に行った変更はありませんでした。サーバーとトランク上のローカルコピーを比較すると、コードレビュー後に同じファイルにすべての変更が加えられました。そのため、壊れたビルドを修復するために2回目のコミットを行う必要がありました。
PERFORCEがクライアントに各ファイルのローカルコピーを1つしか保持していないと思ったので、これがどのように発生したのか混乱していますか?
ファイルが改ざんされたことを示すフラグがあったとしても、提出されたファイルはどこにありますか?コミットウィンドウにトランクパスが表示されたことは間違いありませんが、ブランチからファイルを取得できたのではないでしょうか。
もう1つの質問は、PERFORCEバージョン管理を使用する場合、上記のシナリオにどのように対処すればよいかということです。