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 p4
やgit filter-branch
は、小さくて効率的な Git パックファイルを作成するのが得意ではありません。ですから、GitLabサーバーに初めてリポジトリを送る前に、時間とCPUを費やして適切に再パックするのは良い考えかもしれません。StackOverflow の質問を参照ください。