Perforce Helix からの移行

Perforce Helixは、Git に似た集中型の独自のバージョン管理システムを含む一連のツールを提供します。

Perforce と Git の比較

次のリストは、Perforce Helix と git の主な違いを示しています:

  1. 一般的に、最大の違いは、Perforce のブランチが Git の軽量なブランチと比較してヘビー級であることです。 Perforce でブランチを作成すると、実際に変更された数に関係なく、ブランチ内のすべてのファイルについて独自のデータベースにインテグレーションレコードが作成されます。 一方、Git は異なるアーキテクチャで実装されており、単一の SHA が変更後のリポジトリ全体の状態へのポインタとして機能するため、ブランチが非常に簡単になります。 これが、Git で機能ブランチワークフローを簡単に採用できた理由です。
  2. また、ブランチ間のコンテキストの切り替えもGitではずっと簡単です。 上司が「あの新機能の作業を中断して、このセキュリティの脆弱性を修正する必要がある」と言ったとしても、Gitではとても簡単にできます。
  3. プロジェクトの完全なコピーとその履歴がローカルマシンにあるということは、すべてのトランザクションが非常に高速であるということであり、Gitはそれを提供します。 ブランチ/マージや実験を単独で行い、新しいクールなものをみんなと共有する前に混乱を一掃することができます。
  4. 一方、Perforce では、マージする前に他の人が変更をレビューできるように、サーバーにシェルビング機能を実装する必要がありました。

移住の理由

Perforce Helix は、ユーザーと管理者の両方の視点から管理するのが難しい場合があります。 Git/GitLab への移行があります:

  • ライセンス費用はかかりません。GitはGPLですが、Perforce Helixはプロプライエタリです。
  • 学習曲線が短い。gitには大きなコミュニティがあり、始めるための膨大な数のチュートリアルがあります。
  • 最新のツールとのインテグレーション、GitとGitLabに移行することで、バージョン管理、イシュー・トラッキング、コードレビュー、CI/CDなどが組み込まれたオープンソースのエンドツーエンドのソフトウェア開発プラットフォームを手に入れることができます。

移行方法

Gitには、Perforceからコードをプルしたり、GitからPerforceにコードをサブミットしたりするための仕組み(git p4)が組み込まれています。

ここにいくつかのリンクがあります:

git p4git filter-branch は、小さくて効率的な Git パックファイルを作成するのがあまり得意ではないので、GitLab サーバーに初めて送信する前に、時間と CPU を費やしてリポジトリを適切に再パックするのがよいでしょう。StackOverflow の質問を参照ください。