내용 규칙 : ${SVN유저} = ${GitLab유저명} <${GitLab유저 Email주소}>
# 작업 서버에 SVN, GIT 등이 설치 되어 있는지 확인
java -jar svn-migration-scripts.jar verify
# 작업 서버에 SVN Repository 프로젝트 유저 정보 가져오기
java -jar svn-migration-scripts.jar authors ${SVN_프로젝트_URL} > ${유저 정보 저장하려는 파일명}
# 예시
# dataware-bizmeta-module 프로젝트 참여한 유저정보를 authors.txt 파일에 저장
java -jar svn-migration-scripts.jar authors https://localhost/svn/roadmap_project > authors.txt
# authors.txt 내용 -> 이메일주소 변경 알맞게 변경필요
# 변경 전
swjeong = swjeong <swjeong@mycompany.com>
# 변경 후
swjeong = swjoeng <swjeong@gmail.com>
git svn clone
SVN 프로젝트를 checkout 하면서 Git Repository로 구성
git svn command -> git에서 제공, git과 SVN 관련 command 제공. 관련 링크
GitLab에 올리기 전 Local에 SVN 프로젝트를 Git 프로젝트로 Migration 하기 위한 작업
# 주요 옵션 정리
# --stdlayout => SVN 프로젝트 구조가 표준구조(/trunk, /branches, /tags로만 구성)일 경우 사용
# --no-metadata => SVN 메타데이터(bug report, archive 정보) 안 들고 오는 옵션, git migration만 할 경우 추천
# --authors => 유저 정보 파일 PATH 설정
# 기본 포맷
git svn clone ${SVN_프로젝트_URL} --authors-file=${유저정보_파일_PATH} ${받는_프로젝트_폴더}
# 예시
git svn clone https://localhost/svn/roadmap_project --stdlayout --no-metadata --authors-file=authors.txt ./roadmap_project
roadmap_project 폴더 생성 -> 해당 폴더에 해당 SVN 프로젝트 받아지면서 GIT 프로젝트로 생성
# SVN -> Git으로 변경된 프로젝트 branch 확인
cd ./roadmap_project
git branch -a
master
remotes/origin/trunk
-> branch 가 remote/origin/${branch명}으로 들어오는 거 확인
git remote push
GitLab 미리 git 프로젝트 생성
Migration 한 프로젝트 remote 연결(GitLab) 및 push
# Git 프로젝트 remote(GitLab) 연결
git remote add origin ${GitLab_프로젝트_CLONE_PATH}
# 예시
git remote add origin git@gitlab.encore.rnd:projects/roadmap-backend.git
# git branch에 따른 push 명령어 만들어주는 command -> 나온 결과 생성
printf "git push origin "; git show-ref | grep refs/remotes | grep -v '@' | grep -v remotes/tags | perl -ne 'print "refs/remotes/$1:refs/heads/$1 " if m!refs/remotes/(.*)!'; echo
# 예시 결과
git push origin refs/remotes/origin/origin/trunk:refs/heads/origin/origin/trunk refs/remotes/origin/trunk:refs/heads/origin/trunk
GitLab 프로젝트 설정
origin/trunk branch -> master branch로 생성
master branch
Default branch로 설정
protected branch로 설정
Allowed to merge, Allowed to push -> Maintainers로 설정