2

[注:「Perfarce」は、Perforceと統合するためのMercurial拡張機能の名前です:https ://www.mercurial-scm.org/wiki/PerfarceExtension ]

現在Perforceに保存されているプロジェクトのMercurialの評価を開始しています。P4デポを放棄してHgですべての変更を行うのではなく、主にHgで作業し、変更を定期的にP4にプッシュしたいと考えています。この評価の間、一部の開発者がPerforceで作業を続ける可能性がありますが、それ以外に、ある開発者のリポジトリから別の開発者へのプルなど、DVCSが可能にするワークフローを評価したいと思います。

Perfarce拡張機能を試しましたが、ローカル履歴がより詳細な高度なP4クライアントとしてHgを使用するのに最適な方法のようです。ただし、Perfarceを使用して2つの異なるマシンで同じツリーをチェックアウトすると、チェンジセットIDが異なる2つのMercurial履歴が取得されます。この方法で変更を共有する唯一の方法は、P4デポを通過することであるように見えます。

Mercurialレベルで互換性をなくすことなく、開発者のリポジトリをP4と同期させ続けるための他のオプションはありますか?

4

1 に答える 1

4

正直なところ、これは悪夢の原因となる可能性のある状況のように聞こえます。リスクと苦痛の一部を最小限に抑えるために、私がどのようにアプローチするかを次に示します。

  • PerforceがHgにそれほど干渉しないように、Perforceワークスペースを「allwrite 」に設定します。
  • 単一のP4ワークスペースを使用して、デポからMercurialリポジトリに(およびhgからデポに)変更を同期してから、そこからMercurialのプッシュ/プル作業を実行します。GitHubやBitbucketのマスターリポジトリのように扱ってください。
  • one-true-workspace syncを使用すると、P4Vの「オフライン作業の調整」機能を使用してPERFORCEに戻り、変更リストを注意深く確認してください(.hgディレクトリを送信しないでください)。

いくつかの規律があれば、いくつかの落とし穴を避けることができるはずですが、それは確かに前進する理想的な道ではありません。変更をすべての異なるリポジトリ間でシームレスに適切にミラーリングし、全員が通常どおりに作業できるようにする単一の箇条書きはないと思います。

于 2012-07-17T23:29:15.070 に答える