서브버전 저장소 통합하기

  • Post Author:
  • Post Category:
  • Post Comments:1 Comment
  • Post last modified:February 8, 2020

상황은 이렇다.

서버 소스코드는 http://mycompany.com/svn/server 에 위치한 SVN 저장소에 있다. 클라이언트 소스코드는 이와 달리 http://mycompany.com/svn/client 에 있는데 이 둘을 하나로 통합하려 한다.

우선 클라이언트 저장소의 폴더 구조를 보자면 다음과 같다.

/trunk
 - /trunk/src
 - /trunk/src/client
 - /trunk/vendor
/tags
/branches
 - /branches/my-branch-001
 - /branches/my-branch-002

서버 저장소의 폴더 구조는 이보다 단순해서 다음과 같다.

/trunk
 - /trunk/src
 - /trunk/src/server
/tags
/branches

폴더 구조를 분석해보니 서버 저장소를 클라이언트 저장소에 통합하여 다음과 같이 편성하면 좋겠다 싶다.

/trunk
 - /trunk/src
 - /trunk/src/client
 - /trunk/src/server
 - /trunk/vendor
/tags
/branches
 - /branches/my-branch-001
 - /branches/my-branch-002

이렇게 편성하기에 앞서 SVN 저장소가 물리 디스크에 다음과 같은 폴더 구조로 배치되었다고 가정한다.

  • 클라이언트: D:\Repository\Server
  • 서버: D:\Repository\Client

이러한 상황에서 두 저장소를 원하는 대로 통합하려면 다음과 같은 절차를 따른다.

  1. 명령 줄(CMD.EXE)에서
    CD /D D:\Repository
  2. 서버 저장소 덤프 뜨기. 이때 /trunk/src/server만 덤프한다.
    svnadmin dump Server | svndumpfilter --drop-empty-revs --renumber-revs include trunk/src/server > Server.dump
  3. 덤프 뜬 내용물을 클라이언트 저장소에 통합하기
    svnadmin load Client --parent-dir=trunk/src/server < Server.dump

그리 어려운 부분은 없지만 중간에 –drop-empty-revs –renumber-revs 스위치가 무엇인지는 직관적이지 않다. 서버 저장소 중 일부만 가져다 복원한다. 그런데 기존 서버 저장소에 /trunk/src/empty라는 빈 폴더가 있다면 이 저장소는 복원되지 않는다. 그래서 /trunk/src/server 폴더와 상관이 없는 리비전이 있기 마련이다. 새로운 저장소에서 이러한 로그는 불필요하기 때문에 이전 대상에서 제외할 경우가 많은데 이 때 사용하는 스위치이다.

참고 문서

Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
follow me
  • RT @avecalice: 세계최대 아동성착취 사이트 운영자가 이런 형을 받는 나라에서 애는 왜 낳으라고 해.
    21 hours ago
  • Barbara Sykes’ Training Border Collies – Kindle edition by Sykes, Barbara. Crafts, Hobbies & Home 견종마다 자기 의견이 있던데,… https://t.co/bDojlitEmR
    2 days ago
  • 회사에서 1패스워드(1Password) 비지니스 플랜 구독 시 패밀리 플랜이 무료 https://t.co/Yy66innWUc 아직 도입 안 한 회사라면 복지차원에서라도 쓰자고 해보십쇼. 이 요금제 나온 이… https://t.co/OGIhhzixP6
    2 days ago
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Latest Posts