2009-10-04 12 views
1

svn 저장소에 코드가 있습니다. 저장소 A라고 부릅니다. 이제 내용을 저장소 B로 이동해야하지만 다른 프로젝트의 경우에는 저장소 B가 이미 활성화되어 있다고합니다. . 특정 디렉토리를 저장소 A에서 저장소 B로 이동하여 파일 기록을 보존 할 수 있습니까? 일반적으로, 새로운 서버에 전체 저장소를 마이그레이션, 나는 할 것이다 :다른 svn 저장소로 디렉토리 이동

svnadmin dump -r 0:179 rep_a > rep_a.dump 
svnadmin create rep_b 
svnadmin load rep_b < rep_a.dump 

그러나이 전체 저장소에 작용 및 저장소 B (나는 생각한다)로 시작하는 빈 가정합니다. 해당 디렉토리를 내보내고 저장소 B로 가져올 수는 있지만 버전 기록은 잃어 버릴 수 있습니다.

버전 기록을 잃지 않고 특정 디렉토리를 A에서 B로 쉽게 이동할 수 있습니까?

답변

3

은의 당신이 rep_brep_a의 디렉토리 trunk/project을 복사 할 가정 해 봅시다, 당신은이 명령을 사용해야합니다.

물론주의해서 백업 해 두십시오. 또한 공통 디렉토리가있는 경우 까다로울 수 있습니다. 그런 다음 동일한 디렉토리를 두 ​​번 작성하지 않으려면 덤프에서 디렉토리 작성을 제거해야합니다.

+1

고마워요! 그래서 나는 디렉토리에 대한 경로가 동일하다고 가정하므로 rep_a의 trunk/project가 rep_b의 trunk/project가됩니까? 경우에 따라 마이그레이션하는 동안 경로를 변경하는 쉬운 방법이 있습니까? 그래서 예를 들어 trunk/project는 trunk_import/project가됩니까? – astrofrog

+1

'svnadmin load --parent-dir' 옵션이 있습니다. 좀 더 복잡한 것이 필요한 경우, Perl 인터프리터가있는 경우이 오래된 Perl 스크립트 (http://www.coelho.net/svn-merge-repos.html)를 살펴 보는 것이 좋습니다. 파이썬에는 또 다른 것이 있지만 몇 가지 간단한 테스트를 제외하고는 사용하지 않았습니다 : http://www.orcaware.com/svn/wiki/Svnmerge.py – RedGlyph

+0

이 작업은 저장소가 작동하지 않습니까? 여기에서 확인하고 응답 할 수 있습니까? http://stackoverflow.com/questions/24523774/importing-older-code-with-revision-history-to-a-new-svn-repository – Krunal

0

SVN 북에서 Filtering Repository History을보십시오. rep_b의 역사에 추가됩니다 rep_a 관련

svnadmin dump rep_a | svndumpfilter include trunk/project | svnadmin load rep_b 

개정 :

관련 문제