SVN To Gitalb 마이그레이션 > GitLab 자료실

본문 바로가기
사이트 내 전체검색

GitLab 자료실

SVN To Gitalb 마이그레이션

페이지 정보

profile_image
작성자 yunbin
댓글 0건 조회 173회 작성일 24-01-14 13:39

본문

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

댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

회사명 : (주)리눅스데이타시스템 / 대표 : 정정모
서울본사 : 서울특별시 강남구 봉은사로 114길 40 홍선빌딩 2층 / tel : 02-6207-1160
대전지사 : 대전광역시 유성구 노은로174 도원프라자 5층 / tel : 042-331-1161

접속자집계

오늘
495
어제
1,872
최대
3,935
전체
808,349
Copyright © www.linuxdata.org All rights reserved.