svn repository 2개 합하기


본사에서 하던 프로젝트에 소스코드 관리하던 중에 svn 리포 2개를 합할 일이 있어서 몇 자 적어놓는다.

상황

  1. 리포가 2개가 있다. 리포 A는 /trunk/projectA/files 이렇게 있고, 리포 B는 /trunk/files 이렇게 있다. 리포 B의 내용을 합해서 리포A로 가는 것이 궁극의 목표다. 리포 B의 files는 나중에는 리포 A의 /trunk/projectA/files 에 합해지면 된다.

해결책

  1. 리포 A를 덤프한다. svnadmin dump repoA > repoA.dmp
  2. 리포 B를 덤프한다. svnadmin dump repoB > repoB.dmp
  3. 리포 B를 리포 A에 로딩한다. svnadmin load –parent-dir trunk/projectA repoA < repoB.dmp

주의할 점

/projectA 폴더 구조를 맞출려고 repoB에서 /trunk/projectA/files 라고 디렉토리를 옮겨놓고, svn commit 해서. 그 다음에 svnadmin load를 했는데, 이 디렉토리가 있다고 에러가 나면서 로딩이 되지 않았다. 반드시 이렇게 하지 말고 svn admin –parent-dir 를 사용해야 제대로 로딩이 된다.