SVN에서 Git로 마이그레이션
우리는 SVN-Git 간 마이그레이션 프로세스를 다음과 같이 5가지 단계로 단순하게 나눴습니다.
- 마이그레이션을 위한 환경을 준비합니다.
- SVN 리포지토리를 로컬 Git 리포지토리로 전환합니다.
- SVN 리포지토리가 변경되면 로컬 Git 리포지토리를 동기화합니다.
- Bitbucket을 통해 Git 리포지토리를 개발자와 공유합니다.
- 개발 작업을 SVN에서 Git로 마이그레션합니다.
준비, 전환, 동기화 단계에서는 SVN의 커밋 이력을 가져와 Git 리포지토리로 변환합니다. 이 첫 세 단계를 관리하는 가장 좋은 방법은 팀원 중 한 명을 마이그레이션 책임자로 지정하는 것입니다. (이 가이드를 읽고 있는 당신이 그 책임자일 가능성이 높습니다.) 이 세 단계는 모두 마이그레이션 책임자의 로컬 컴퓨터에서 진행해야 합니다.
After the synchronize phase, the migration lead should have no trouble keeping a local Git repository up-to-date with an SVN counterpart. To share the Git repository, the migration lead can share their local Git repository with other developers by pushing it to Bitbucket, a Git hosting service.
Bitbucket에 올라가면 다른 개발자가 전환된 Git 리포지토리를 자신의 다른 로컬 컴퓨터에 복제한 후 Git 명령어로 이 리포지토리의 이력을 탐색하고 구축 프로세스에 통합할 수 있습니다. 그러나 팀이 완전한 Git 워크플로우로 전환할 준비가 될 때까지는 SVN에서 Git로의 동기화는 한 방향으로 진행하는 것이 좋습니다. 이것은 누구나 자신의 Git 리포지토리를 읽기 전용으로 취급하고 원본 SVN 리포지토리로 계속해서 커밋해야 한다는 뜻입니다. Git 리포지토리에 대한 모든 변경은 마이그레이션 책임자가 동기화해 그 업데이트 내용을 Bitbucket에 올릴 때에 한해 일어나야 합니다.
이로써 팀은 정해진 전환 기간을 두고 기존 SVN 방식의 작업 흐름에 차질을 일으키지 않은 채 Git에 적응할 수 있습니다. 개발자가 변환할 준비가 되었다는 확신이 들면, 마이그레이션의 최종 단계로서 SVN 리포지토리를 동결하고 대신 Git와 커밋을 시작하면 됩니다.
전체 Git 작업 흐름이 이미 마련돼 있고 개발자는 충분한 시간을 갖고 이러한 전환에 적응할 수 있기 때문에 이러한 전환은 매우 자연스럽게 일어납니다. 이 시점이 되면 SVN에서 Git로의 마이그레이션은 성공적으로 끝난 셈이 됩니다.