2017-03-01 12 views
0

ファイルをマージするのを避けるためにPERFORCEコマンドラインに上書きするのではなく、ファイルをマージするにはどうすればよいですか?PERFORCEはコマンドラインからのマージをunshelveします

ユースケースは次のとおりです。「my_file」を変更するシェルフがあります。シェルフの「クリーン」(p4 revert ...)オーナーで、私は最新バージョンに更新します。私はそれから抜け出したいが、アクションはそれらを上書きするのではなく、潜在的な競合をマージするべきである。これはコマンドライン経由で可能ですか?

これはHow can I instruct Perforce to merge instead of overwrite or revert when unshelving a file?のコマンドラインバージョンです。

答えて

1

作業領域が「クリーン」である場合、競合は発生しません。このファイルは、元々保存されたバージョンではアンヘルブされません。別のバージョンに同期すると、自動的に解決がスケジュールされます。

ローカルファイルが開いている場合、unshelvingは自動的に解決をスケジューリングします(少なくとも現在のバージョンでは、古いバージョンでは開いている変更を取り消すことを拒否します)。

ローカルファイルが変更されていても開いていない場合は、記述した上書き動作が発生することがあります。それをしないでください。 :)変更されたファイルが正しく開かれていることを確認する前に「p4 reconcile」を使用するか、またはそれらの変更を破棄するために「p4 clean」を使用してください。

+0

"p4更新"のために上書きが発生しました。私はPERFORCEの外では変更を加えません。棚で変更されたファイルは、アップデートに付属の別のユーザーの提出された変更によっても変更されました。ファイルに "p4 edit"を使用すると、あなたが記述したようにunshelvingが解決をスケジューリングしたためです。 unshelvingにはこれを自動的に行う機能がないことは悲しいことです。 – Kostas

+0

あなたの説明は間違っていますが、コマンドを実行した正確な順序や、シェルフに含まれていたリビジョンと、あなたが同期したものと提出した他のユーザーとの間で、実際に何が起こったのか説明できません。 :)私は、競合が検出され、解決が自動的にスケジュールされることは確信しています。開かれていないときにファイルを混乱させないでください(さらに、チェックサム比較によってさまざまな時点でそれをキャッチする可能性があります)。あなたがやったことややろうとしていることの正確な記述であなたの質問を更新してください。 –

+0

私が疑うのは、バージョン5のバージョンを同期し、#4に基づいたリビジョンをunshelveした場合、ローカルファイルが#4に基づいていることを認識し、自動的に解決をスケジューリングすることですあなたが#5を再同期するとき。何も上書きされません。 –

関連する問題