본문 바로가기
개발/git

gitlab에서 gitea로 마이그레이션

by hyperhand 2023. 10. 29.

 기존에 라즈베리파이4 8GB 모델을 이용해 우분투 서버에 도커 설치 후 gitlab을 설치해 사용했었다. 초기 세팅이 다소 어려웠고 시스템 리소스를 많이 소비하는 편이어서 개인적으로 사용하기엔 그닥 적합한 것 같진 않았으나 그냥 단순 호기심에 사용했었다. 소스 코드는 별도의 디스크를 이용하진 않고 기본 SD카드에 저장되도록 했었는데 SD카드의 불안정성을 간과했었던 것 같다. 몇년 전 이미 SD카드의 불안정성을 회사에서 라즈베리파이를 이용한 제품 개발 과정에서 뼈저리게 경험했었으나 그때는 빈번한 급작스런 셧다운과 고온의 환경에서 사용하는 등의 이유로 단시간에 시스템이 먹통이 되는 등 다소 터프한 환경에 기인한 것이라 판단했는데 그렇지 않은 가정집에서 사용함에도 불구하고 2년을 채 버티지 못하고 부팅이 안되는 현상이 발생했다. 어떻게든 사용하던 SD카드 상에서 복구를 시도했으나 하드웨어적 손상을 입은 것인지 열심히 구글링하며 방법을 찾아 시도해봤지만 해결하진 못했다. 결국 사용하던 SD카드의 이미지를 떠 새로운 SD카드에 다시 입히는 것으로 문제는 조치했지만 또 시간이 지나면 재발할 것이기에 제대로 된 저장 시스템을 사용해서 안전하게 소스 코드를 관리하기로 했다.

 

 

 

 

 그래서 시놀로지 나스를 구매하여 도커 상에 gitlab을 올려 사용하려 했으나 듀얼코어에 2GB 램이라는 사양에는 좀 버거웠는지 gitlab보단 더 가벼운 gitea를 사용하는 유저들이 많아 보여 어차피 git의 기본적인 기능만 사용하기에 gitea를 사용하기로 했다.

 

 문제는 어떻게 기존 gitlab에서 gitea로 프로젝트들을 마이그레이션 할지 처음엔 방법을 몰라서 해맸으나 알고 나니 굉장히 간단했다.

step 1) gitea에서 New Migraion을 선택

 

step 2) 기존 사용하던 git 시스템을 선택. 필자의 경우는 gitlab

 

 

 

 

step 3) gitlab 주소를 복사. 마이그레이션에서 지원하는 프로토콜이 HTTP(S)와 git만 지원해 http 주소를 사용

 

step 4) Migrate/Clone From URL 항목에 gitlab 주소를 입력. Migraion Options에 'This repository will be mirror' 체크. Owner 선택. Repository Name은 URL입력시 자동 입력되나 바꾸고 싶으면 변경. 단, 스페이스는 허용되지 않는다. Private으로 생성하고 싶다면 Visibility 체크. Description 입력은 옵션이니 설명 등 알아서 입력. 아직 Migrate Repository 버튼은 클릭하지 않는다.

 

 

 

 

 

 

step 5) 기존 gitlab으로 다시 와서 프로젝트의 Setting - AccessTokens 선택

 

step 6) Token name 입력, Expiration date(토큰 만기일)은 마이그레이션용으로 잠깐 사용할 것이므로 짧게 선택, role은 Maintainer, scope는 모두 체크. Create project access token 클릭.

 

 

 

 

 

 

step 7) 프로젝트에 접근할 수 있는 토근 생성. 혹시 모르므로 저장해놔야 함. 생성된 토큰을 step 4의 Access Token 항목에 입력 후 Migrate Repository 버튼 클릭.

 

step 8) 마이그레이션 진행 중...

 

step 9) 완료

 

 필자의 경우 마이그레이션 할 프로젝트를 일부 수정할 필요가 있어 일일이 프로젝트별로 이 과정을 거쳤지만 만일 프로젝트가 많고 그대로 이전하는 것이라면 아래 링크를 참조해보는 것도 좋을 듯 하다.

https://github.com/h44z/gitlab_to_gitea

반응형