Perforce Helix からのマイグレーション

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

PerforceとGitの比較

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

  • 一般的に、最大の違いは、Perforce のブランチがヘビー級であるのに対し、Git はライト級であることです。Perforceでブランチを作成すると、ブランチ内のすべてのファイルについて、実際に変更された数に関係なく、Perforce独自のデータベースにインテグレーションレコードが作成されます。しかし Git では、ひとつの SHA が変更後のリポジトリ全体の状態へのポインタとして機能します。これは、機能ブランチのワークフローを採用する際に役立ちます。
  • ブランチ間のコンテキスト切り替えは、Gitではそれほど複雑ではありません。上司が『その新機能の作業を中断して、このセキュリティの脆弱性を修正する必要がある』と言えば、Gitはそれを支援します。
  • プロジェクトの完全なコピーとその履歴がローカルにあるということは、すべてのトランザクションが非常に高速であるということであり、Gitはそれを提供します。ブランチやマージが可能で、単独で実験を行い、変更を他の人と共有する前にクリーンアップすることができます。
  • Git では、変更をデフォルトのブランチにマージすることなく共有できるため、コードレビューが複雑ではなくなります。これは、他の人がマージする前に変更をレビューできるように、サーバーにシェルビング機能を実装しなければならなかった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 の質問を参照ください。