web-dev-qa-db-ja.com

PERFORCEの統合を元に戻し、それでもやり直すにはどうすればよいですか?

PERFORCEに悪い統合チェンジリストがあります。私はそれを取り消して、もっと注意深く(そしておそらく少しずつ)やり直したいと思います。

Perforceのrollbackコマンドを使用してファイルの以前のバージョンに戻しましたが、統合をやり直そうとしたときに、Perforceは何もする必要がないと主張しました。どうやら、ロールバックは単にファイルを元に戻すだけで、関連する統合関連のメタデータについては何もしません。したがって、再統合しようとすると、PERFORCEは「2つのバージョンをすでに統合しました。今は何もしません」と考えます。

統合に関連するチェンジリストを元に戻し、デポを実際に統合をやり直すことができる状態のままにする方法はありますか?

これは大規模なプロジェクトであり、統合は2,000を超えるファイルでした。そのため、これを手動で行うことに固執したくありません。

30
Tim

ご覧のとおり、チェンジリストをロールバックしても統合は「元に戻されません」。統合レコードは、perfroceデータベースで統合が行われた後、一度だけ保存されます。

統合をやり直したい場合は、できます。コマンドラインから「-f」フラグを使用して、以前の統合履歴に関係なく統合を強制できます。このフラグを使用すると、本質的に、統合が最初からやり直されます。 p4vを使用している場合は、統合ダイアログの「詳細オプション」の下に同じ操作を実行するオプションがあります。

特定のリビジョン範囲のみ(つまり、特定の日付から)を再統合する場合は、それも指定してください。それ以外の場合は、すべての統合をやり直す場合は、問題がないはずです。統合に関するヘルプファイルは、リビジョン範囲なしで-fを使用すると、p4 resolveが共通ベースなしでマージを実行することを強制することを示しているので、それにも注意してください。ソースファイルのすべてのリビジョンから完全に統合することからやり直す場合、この警告は当てはまらないと思います。

HTH。

34
Mark

1つの可能性(推奨されていませんが)は、統合ファイル(つまりターゲットファイル)のヘッドリビジョンを「p4で消去」することです。その後の変更でファイルがまだ変更されていないことが重要です。

適切な権限(super私が思う)を持つPERFORCEユーザーだけがそれを行うことができます。

これにより、統合のすべてのトレース(diff、履歴、すべてのメタデータを含む)が削除されるため、お勧めしません。元に戻すことはできません。

完全を期すために、ここでこれについて言及しました。これが必要だと思われる場合は、間違えないように十分注意してください。

2
pitseeker

特定の統合に含まれるファイルリストだけに強制統合を磨くことをお勧めします

p4は[ChangeList]を説明します| grep "^ \。\。\。"

そうしないと、意図したよりも多くのファイルに影響を与えたり(送信後に変更されたファイル)、誤ってより広い範囲で動作したりする可能性があります。

1
A...