신인이 기존 프로젝트의 svn 저장소를 git으로 마이그레이션하여 사용할 때까지

2108 단어 SubversionGit
과거의 프로젝트를 개수하게 되었습니다. 게다가 새로운 멤버를 맞이하게 되었으므로, 사용하고 있던 subversion 리포지토리를 git에 이행하기로 했습니다.

환경



이런 환경입니다. 오래된 git이라면 git svn 명령이 없을지도 모릅니다.
  • FreeBSD 10.0
  • git 2.3.5

  • 작업 내용



    svn 저장소를 clone



    svn 리포지토리를 검색하여 로컬로 배포합니다.
    git svn clone -s --prefix=svn/ file://home/project/repos/myproj
    

    svn 리포지토리는 trunk, tags, branches 디렉토리로 나뉘어 있으므로 -s 옵션을 붙입니다. 이것을 붙이지 않으면, tags나 branches의 디렉토리가 그대로 생겨 버립니다(스|했다).
    --prefix 옵션을 지정하면 git 브랜치 이름에 접두사가 붙습니다. 없어도 좋지만, 붙이면 알기 쉬운지도입니다.

    태그 마이그레이션


    git branch -r 그러면 svn/tags/아래에 이전에 붙인 태그가 나옵니다. 이것들을 git 태그로 만듭니다. 해도 하지 않아도 좋을지도 모릅니다.
    git branch -r | grep svn/tags | sed -e 's#svn/tags/##' | xargs -I % git tag % svn/tags/%
    

    중앙 리포지토리 만들기



    이 근처는 평소의 방법입니다. 네.
    mkdir /home/project/repos/myproj.git
    chgrp myteam /home/project/repos/myproj.git
    git init --bare --shared=group /home/project/repos/myproj.git
    

    중앙 저장소에 push



    이 근처도 평소의 방법입니다.
    git remote add origin file:///home/project/repos/myproj.git
    git push -u origin --all
    git push origin --tags
    

    오시마



    준비가 되었으므로, 신인씨에게 git clone 받도록 합시다.

    이것으로 끝납니다.
    수고하셨습니다.

    좋은 웹페이지 즐겨찾기