PERFORCEデポで個々の開発ブランチを作成するために利用できる方法の長所と短所に関するフィードバックを探しています。私が正しく理解していれば、これを処理する方法は2つあります。1つ目は、作業中のブランチの完全なコピーであるプライベートブランチを作成することです。ブランチは完全に独立しており、変更をターゲットブランチから完全に分離します。
私が推奨していると聞いたもう1つの方法は、スパース分岐です。これは、Practical Perforce(第9章、p.242)で説明されています。これによりブランチが作成されますが、編集する必要のあるファイルのみが含まれます。次に、ターゲットブランチクライアントビューをこのスパース開発ブランチクライアントビューとオーバーラップさせます。
どちらの方法でも、ターゲットブランチで変更を取得するには、プログラマーが統合作業を実行する必要があります。プライベートブランチメソッドは、ブランチ全体のコピーを作成するために、より多くの追加メモリを必要とするようです。ただし、PERFORCEのドキュメントには、この状況で「レイジーコピー」を実行すると記載されています。
統合により、PERFORCEはファイルの「レイジーコピー」を実行することもできます。ファイルを分岐する場合、サーバーは実際にはファイルの2つのコピーを保持しません。サーバーは単にソースファイルを保持し、データベース内のポインターはターゲットファイルへの分岐が発生したという事実を記録します。レイジーコピーは、分岐をオーバーヘッドの少ない操作にします。サーバーは、ファイルの重複コピーを追跡する必要はありません。
これにより、たとえば、開発者がSparseブランチに追加しなかったファイルの作業を開始し、誤って変更を更新する可能性があるため、Sparseブランチメソッドがプロセスに人為的エラーの可能性を追加しているように見えます。ビルドを中断するターゲットブランチ。ただし、スパース分岐機能が存在するのには理由があります。なぜそれが存在するのか、そしてなぜ私が完全なプライベートブランチでそれを使用する必要があるのか(またはその逆)についてのフィードバックをいただければ幸いです。