Perforce Helix에서 Git으로 마이그레이션하기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

Perforce Helix는 Git과 유사한 중앙 집중식 독점 버전 관리 시스템을 포함하는 도구 세트를 제공합니다.

Perforce vs Git

다음 목록은 Perforce Helix와 Git 간의 주요 차이점을 보여줍니다:

  • 일반적으로 가장 큰 차이점은 Perforce의 브랜칭이 Git의 경량 브랜칭에 비해 무겁다는 것입니다. Perforce에서 브랜치를 생성하면, 실제로 변경된 파일 수와 관계없이 브랜치의 모든 파일에 대해 그들의 독점 데이터베이스에 통합 기록을 생성합니다. 그러나 Git에서는 단일 SHA가 변경 후 전체 저장소의 상태를 가리키는 포인터 역할을 하므로, 기능 브랜칭 워크플로를 채택할 때 유용할 수 있습니다.

  • Git에서는 브랜치 간의 컨텍스트 전환이 덜 복잡합니다. 만약 당신의 매니저가 ‘그 새로운 기능 작업을 멈추고 이 보안 취약점을 수정해야 한다’고 말하면, Git이 그것을 도와줄 수 있습니다.

  • 프로젝트와 그 이력의 완전한 복사본을 로컬 컴퓨터에 갖고 있다는 것은 모든 트랜잭션이 매우 빠르다는 것을 의미하며, Git이 그것을 제공합니다. 브랜치를 생성하거나 병합하고, 고립된 상태에서 실험할 수 있으며, 변경 사항을 다른 사람과 공유하기 전에 정리할 수 있습니다.

  • Git은 코드 리뷰를 덜 복잡하게 만듭니다. 변경사항을 기본 브랜치에 병합하지 않고도 공유할 수 있습니다. 이는 Perforce와 비교했을 때, Perforce는 변경 사항을 병합하기 전에 다른 사람들이 검토할 수 있도록 서버에서 Shelving 기능을 구현해야 했습니다.

왜 마이그레이션해야 하는가

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 질문을 참조하세요.

관련 주제