SVN To Gitalb 마이그레이션
페이지 정보
본문
SVN에서 Gitlab 이관하는 스크립트입니다.
여기서 설명드리는 이관은 히스토리 이관이 포함되어 있지 않고
SVN Trunk만 Gitlab 프로젝트의 Main 브랜치로 이관하는 스크립트입니다.
만약 전체 이관을 하고 싶으시면 git svn 명령어를 사용하여 이관하시면 됩니다.
스크립트 개요
이관는 SVN 저장소에서 최신 코드를 체크아웃
이를 Git 저장소로 복사한 뒤 Git 저장소에 커밋하고 푸시 하는 과정을 진행
이관 가이드
1. SVN 체크아웃:
svn checkout SVN_REPO_URL SVN_CHECKOUT_DIR
SVN 체크아웃 디렉토리가 없으면 생성하고, SVN 저장소로부터 체크아웃합니다.
이미 디렉토리가 존재하면, 최신 변경사항을 업데이트합니다.
2. Git 저장소 설정:
git init
git remote add origin GIT_REMOTE_URL
git fetch
Git 저장소를 초기화합니다.
원격 저장소 URL을 추가하고, 필요한 경우 기존 데이터를 가져옵니다.
3. Git 브랜치 관리:
git checkout main
git pull origin main
브랜치를 체크아웃하고 최신 변경사항을 풀합니다.
4. SVN 내용 복사:
cp -R SVN_CHECKOUT_DIR/* GIT_REPO_DIR/
SVN 체크아웃 디렉토리에서의 모든 파일과 디렉토리를 Git 저장소 디렉토리로 복사합니다.
5. Git 커밋 및 푸시:
git add .
git commit -m "Updated with latest changes from SVN"
git push -u origin main
복사된 파일들을 Git에 추가하고, "Updated with latest changes from SVN" 메시지와 함께 커밋합니다.
변경사항을 원격 Git 저장소의 main 브랜치로 푸시합니다.
#!/bin/bash
set -e
# SVN 및 Git 저장소 설정
SVN_REPO_URL="svn://IP/"
GIT_REMOTE_URL="http://IP/root/test.git"
SVN_CHECKOUT_DIR="svn_mig12"
GIT_REPO_DIR="mig_test12"
# SVN 체크아웃 디렉토리 생성 및 체크아웃
if [ ! -d "$SVN_CHECKOUT_DIR" ]; then
mkdir -p $SVN_CHECKOUT_DIR
svn checkout $SVN_REPO_URL $SVN_CHECKOUT_DIR
else
cd $SVN_CHECKOUT_DIR
svn update
cd ..
fi
# Git 저장소 디렉토리 생성 및 초기화
if [ ! -d "$GIT_REPO_DIR" ]; then
mkdir -p $GIT_REPO_DIR
cd $GIT_REPO_DIR
git init
git remote add origin $GIT_REMOTE_URL
git fetch
else
cd $GIT_REPO_DIR
fi
# 원격에 main 브랜치가 있는지 확인
if git branch -r | grep -q "origin/main"; then
# 원격에 main 브랜치가 있다면 해당 브랜치를 체크아웃
git checkout main
git pull origin main
else
# 원격에 main 브랜치가 없다면 새로 생성
git checkout -b main
fi
cd ..
# SVN 체크아웃 내용을 Git 저장소로 복사
cp -R $SVN_CHECKOUT_DIR/* $GIT_REPO_DIR/
# Git에 변경사항 추가 및 커밋
cd $GIT_REPO_DIR
git add .
git commit -m "Updated with latest changes from SVN"
# Git 원격 저장소에 푸시
git push -u origin main
여기서 설명드리는 이관은 히스토리 이관이 포함되어 있지 않고
SVN Trunk만 Gitlab 프로젝트의 Main 브랜치로 이관하는 스크립트입니다.
만약 전체 이관을 하고 싶으시면 git svn 명령어를 사용하여 이관하시면 됩니다.
스크립트 개요
이관는 SVN 저장소에서 최신 코드를 체크아웃
이를 Git 저장소로 복사한 뒤 Git 저장소에 커밋하고 푸시 하는 과정을 진행
이관 가이드
1. SVN 체크아웃:
svn checkout SVN_REPO_URL SVN_CHECKOUT_DIR
SVN 체크아웃 디렉토리가 없으면 생성하고, SVN 저장소로부터 체크아웃합니다.
이미 디렉토리가 존재하면, 최신 변경사항을 업데이트합니다.
2. Git 저장소 설정:
git init
git remote add origin GIT_REMOTE_URL
git fetch
Git 저장소를 초기화합니다.
원격 저장소 URL을 추가하고, 필요한 경우 기존 데이터를 가져옵니다.
3. Git 브랜치 관리:
git checkout main
git pull origin main
브랜치를 체크아웃하고 최신 변경사항을 풀합니다.
4. SVN 내용 복사:
cp -R SVN_CHECKOUT_DIR/* GIT_REPO_DIR/
SVN 체크아웃 디렉토리에서의 모든 파일과 디렉토리를 Git 저장소 디렉토리로 복사합니다.
5. Git 커밋 및 푸시:
git add .
git commit -m "Updated with latest changes from SVN"
git push -u origin main
복사된 파일들을 Git에 추가하고, "Updated with latest changes from SVN" 메시지와 함께 커밋합니다.
변경사항을 원격 Git 저장소의 main 브랜치로 푸시합니다.
#!/bin/bash
set -e
# SVN 및 Git 저장소 설정
SVN_REPO_URL="svn://IP/"
GIT_REMOTE_URL="http://IP/root/test.git"
SVN_CHECKOUT_DIR="svn_mig12"
GIT_REPO_DIR="mig_test12"
# SVN 체크아웃 디렉토리 생성 및 체크아웃
if [ ! -d "$SVN_CHECKOUT_DIR" ]; then
mkdir -p $SVN_CHECKOUT_DIR
svn checkout $SVN_REPO_URL $SVN_CHECKOUT_DIR
else
cd $SVN_CHECKOUT_DIR
svn update
cd ..
fi
# Git 저장소 디렉토리 생성 및 초기화
if [ ! -d "$GIT_REPO_DIR" ]; then
mkdir -p $GIT_REPO_DIR
cd $GIT_REPO_DIR
git init
git remote add origin $GIT_REMOTE_URL
git fetch
else
cd $GIT_REPO_DIR
fi
# 원격에 main 브랜치가 있는지 확인
if git branch -r | grep -q "origin/main"; then
# 원격에 main 브랜치가 있다면 해당 브랜치를 체크아웃
git checkout main
git pull origin main
else
# 원격에 main 브랜치가 없다면 새로 생성
git checkout -b main
fi
cd ..
# SVN 체크아웃 내용을 Git 저장소로 복사
cp -R $SVN_CHECKOUT_DIR/* $GIT_REPO_DIR/
# Git에 변경사항 추가 및 커밋
cd $GIT_REPO_DIR
git add .
git commit -m "Updated with latest changes from SVN"
# Git 원격 저장소에 푸시
git push -u origin main
- 이전글Install Subversion on Ubuntu - II 24.03.04
- 다음글Install Subversion on Ubuntu - I 23.12.13
댓글목록
등록된 댓글이 없습니다.