Windows에서 한 서버에서 다른 서버로 SVN 저장소를 이동해야합니다. 트릭은 중첩 된 저장소 내의 프로젝트에서 트렁크, 분기 및 태그를 제외하고 모든 것을 제외하고자합니다.중첩 된 SVN 저장소 이동
현재 모든 프로젝트가있는 하나의 큰 저장소가 있습니다 (MyBigRepo). 현재의 구조는 다음과 같습니다
/Repositories/MyBigRepo/MyProject1/trunk
/Repositories/MyBigRepo/MyProject1/branches
/Repositories/MyBigRepo/MyProject1/tags
/Repositories/MyBigRepo/MyProject2/trunk
/Repositories/MyBigRepo/MyProject2/branches
/Repositories/MyBigRepo/MyProject2/tags
/Repositories/MyBigRepo/MyProject3/trunk
/Repositories/MyBigRepo/MyProject3/branches
/Repositories/MyBigRepo/MyProject3/tags
는 난 단지 MyProject1
를 이동하기를 원하지만 이 MyProject1
저장소에서 트렁크, 지점 및 태그를 주요 폴더 MyProject1
를 제외하고 단지 이동에 내가 원하는. 내가 MyProject2
또는 MyProject3
이동하려는하지 않습니다. 즉, 내 목표은 아래와 비슷한 새 저장소를 형성하는 것입니다. 여기
/Repositories/NewRepo/trunk
/Repositories/NewRepo/branches
/Repositories/NewRepo/tags
내가 일을하기 위해 만든 배치 파일입니다 :
:: Create a dump of the old repo
svnadmin dump %OldRepoPath% > %MyBigRepoDumpFile%
:: Remove the other projects
svndumpfilter include "MyProject1" < %MyBigRepoDumpFile% > %MyProject1DumpFile%
:: Create a new repo
svnadmin create %NewRepoPath%
:: Load the dump into the new repo
svnadmin load %NewRepoPath% < %MyProject1DumpFile%
내 문제는 일괄 여전히이 같은 %NewRepoPath%
에서 MyProject1 디렉토리를 생성하는 것입니다 :
/Repositories/NewRepo/MyProject1/trunk
/Repositories/NewRepo/MyProject1/branches
/Repositories/NewRepo/MyProject1/tags
인가를 거기에 내 덤프 파일에서 여분의 레벨 (MyProject1)을 제외하거나 레벨을 위로 이동하여 기록을 보존하는 방법이 있습니까?
이 접근법에 다소 기술적 인 문제가 있습니다. 동일한 프로젝트의 트렁크, 분기 및 태그는 일반적으로 함께 결합되어 있으므로 svndumpfilter는이를 구분할 수 없습니다. 나는 비슷한 것을 한 번 시도했다. 며칠을 낭비했고 결국 포기했다. –
''svndumpfilter include "trunk" "branches" "tags"<% MyProject1DumpFile %> % MyProject1DumpFile %'을 실행하면 빈 덤프 파일이 생깁니다. 왜이게 될지 아십니까? – jags0333