0

説明できないPERFORCEの動作を見てきました。私はトランクのブランチを取得し、定期的に変更をコミットし、時々トランクからブランチにマージして、再統合時に大きな競合が発生しないようにしました。

この作業が完了したら、Perforceのマージ/統合オプションを使用して変更をトランクに適用しました。コードレビューのためにこれらの変更を送信した後、トランクにいくつかの変更を加えました。この時点では、変更はトランクにコミットされていませんでした。

これらすべての変更をコミットしようとすると、diffは期待どおりにファイルを表示しました。変更リストを送信した後、送信された変更は、差分ウィンドウに表示されたものと同じではありませんでした。代わりに、Merge/Integrate以降に行った変更はありませんでした。サーバーとトランク上のローカルコピーを比較すると、コードレビュー後に同じファイルにすべての変更が加えられました。そのため、壊れたビルドを修復するために2回目のコミットを行う必要がありました。

PERFORCEがクライアントに各ファイルのローカルコピーを1つしか保持していないと思ったので、これがどのように発生したのか混乱していますか?

ファイルが改ざんされたことを示すフラグがあったとしても、提出されたファイルはどこにありますか?コミットウィンドウにトランクパスが表示されたことは間違いありませんが、ブランチからファイルを取得できたのではないでしょうか。

もう1つの質問は、PERFORCEバージョン管理を使用する場合、上記のシナリオにどのように対処すればよいかということです。

4

2 に答える 2

4

私たちが犯した間違いの1つは、(a)あるブランチから別のブランチにファイルを統合し、(b)「マージを受け入れる」として解決し、(c)(d)送信する前にファイルにローカル変更を加えることです。手順(b)の後および手順(c)の前に編集用にファイルを明示的に開かない場合、サーバーはローカルの変更を認識しません。

于 2012-06-12T13:43:44.147 に答える
0

トランクのコピーで直接編集するという最初の間違いを犯しました。常にタスクブランチを使用してください。それはおそらくあなたが見ている問題を引き起こしませんでした、しかしあなたがあなたのタスクブランチを台無しにしたならば、それはビルドを壊さなかったでしょう。トランクのローカルコピーを見るときは、デポから更新したことを確認してください。トランクファイルのローカルコピーが古くなっている場合は、小さな黄色の三角形が表示されます。トランクのコピーで古くなったファイルを編集してコミットすると、「奇妙な」動作が発生します。

PERFORCEがクライアントに各ファイルのローカルコピーを1つしか保持していないと思ったので、これがどのように発生したのか混乱していますか?

トランク用に1つのコピー、タスクブランチごとに1つのコピー。

于 2012-06-12T09:41:51.820 に答える