2009-06-01 6 views
2

내 프로젝트를 보유하고있는 폴더가있는 기존 SVN 저장소가 있습니다. 내 프로젝트 폴더를 루트로 설정하여 새 저장소를 만들고 모든 Subversion 기록 (로그)을 보존하는 방법이 있는지 알고 싶습니다. 원본 저장소 리비전 번호를 잃어 버리지 않아도됩니다.새 저장소 루트에 SVN 폴더

감사합니다.

+0

여기에 키를 새로 만들거나 한 수준의 하위 디렉토리를 제거하는 중입니까? 후자의 경우 "svn move"가 친구입니다. – laalto

+1

이 질문은 수 차례 이미 제기되었으며 "svndumpfilter"로 검색했습니다. –

답변

2

리포지토리를 수동으로 복사하거나 svnadmin을 사용하여 복사 할 수 있습니다.

그런 다음 프로젝트의 하위 디렉토리를 루트 아래로 이동하고 다른 모든 항목을 삭제할 수 있으므로 원하는 디렉토리 구조로 유지할 수 있습니다. 히스토리는 파일 단위로 보존되지만, 다른 경로 (아마 좋은 점)를 사용하는 파일을 기억할 것입니다.

+0

'svn relocate'를 사용하지 않고도 후속 업데이트가 실패하지 않습니까? –

2

아마도 Avi의 솔루션은 가장 쉽지만 새로운 저장소에이 프로젝트 외 모든 자료의 전체 내역이 포함된다는 단점이 있습니다. 아래 예제에서, 당신이 * NIX 머신의 커맨드 라인에 있고 기존 저장소가있는 디렉토리에 있다고 가정합니다.

svnadmin create new-project-repo # create new repo next to old repo 
svnadmin dump old-project-repo | svnadmin load new-project-repo 
svn mv file://$PWD/new-project-repo/my-project/trunk file://$PWD/new-project-repo/trunk 
svn mv file://$PWD/new-project-repo/my-project/branches file://$PWD/new-project-repo/branches 
svn mv file://$PWD/new-project-repo/my-project/tags  file://$PWD/new-project-repo/tags 
# ... svn rm file://$PWD/new-project-repo/XXX for all the cruft still at the top level. 

Subversion 1.6.x를 실행중인 경우 svnsync가 더 나은 옵션을 제공합니다. 1.6.x 이전 버전에서는 svnsync를 사용하여 전체 리포지토리를 복사 할 수있었습니다. 1.6.x를 사용하면 저장소의 특정 하위 트리 만 복사 할 수 있습니다.

svnadmin create new-project-repo 
# svnsync needs the ability to set revision properties, so we must install a pre-revprop-change 
# hook script which just exits with status 0 (no error). On *NIX systems, the program `true` will do this. 
ln -s /usr/bin/true new-project-repo/hooks/pre-revprop-change # possibly /bin/true 
svnsync init file://$PWD/new-project-repo file://$PWD/old-project-repo/my-project 
svnsync sync file://$PWD/new-project-repo 
# go drink some coffee 
1

참고 : svnsync 옵션은 1.5.3 버전에서 작동합니다. = D/저장소/새로운 프로젝트 REPO
SET의 NEW_REPO_FILE_PATH : \

SET OLD_REPO_URL = https://old-project-repo/my-project
SET의 NEW_REPO_URL = D :

또한

, 여기에 같은 일을하고 윈도우 배치 스크립트입니다 저장소는 새로운 프로젝트의 repo에게 \

포함 svnadmin %의 NEW_REPO_FILE_PATH %
에코 출구 0> % NEW_REPO_FILE_PATH % \ 후크 사전 revprop-change.bat \

svnsync 초기화 파일 : /// % NEW_REPO_URL % % OLD_REPO_URL %
svnsync 파일 : /// % NEW_REPO_URL %

참고 : 동기화가 완료 될 때까지 새로운 저장소를 검색 할 수 없습니다.