서브버전 저장소 통합하기

  • 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 @exbxtx: 아 근데 너무 웃기다 . . 트래픽 발생량 넷플릭스는 4위인데 SK가 넷플릭스 물고 늘어지면서 넷플릭스법이라고 붙여진거 . . 심지어 이것 때문에 네이버랑 카카오까지 엮여서 지금 인터넷업계 난리난거임 . . 여기에서 제일 이득…
    20 hours ago
  • RT @yoox5135: ①대만의 작가 盛浩偉가 한국 여러분께 호소합니다. 만약에 당신이 중국공산당과 홍콩경찰의(홍콩사람들에 대한) 폭력에 반대한다면, 영화 “뮬란” 보이콧에 동참해 주세요. 주역을 맡은 류이페이(미국국적)가 공공연하게 홍콩경찰을 지…
    20 hours ago
  • https://t.co/3HNEvXY673
    2 days ago
Buy me a coffeeBuy me a coffee
×
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
Latest Posts