문제

나는 오래되었지만 매우 중요한 전복 저장소를 가지고 있으며, 제가 생성하지 않은 일반적인 구조는 트렁크, 분기, 태그를 형성합니다. 따라서이 저장소의 모든 파일이 루트에 있습니다.

새 폴더를 만들고 트렁크로 모든 파일을 이동하는 방법을 알고 있지만, 그렇게한다면 '트렁크'가 새로운 폴더이기 때문에 프로젝트의 역사를 잃게됩니다. 그렇다면 전체 프로젝트의 역사를 루트에서 트렁크 폴더로 옮기는 해결책이 있습니까?

감사!

도움이 되었습니까?

해결책

예. 리포지토리를 파일에 덤프하는 svnadmin 덤프를 사용할 수 있습니다. 그런 다음 svnadmin로드를 사용하여 덤프 파일을 트렁크 폴더에로드 할 수 있습니다. 완료되면 루트에서 파일을 삭제하십시오.

svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]
svnadmin load REPOS_PATH

덤프 문서 : http://svnbook.red-bean.com/en/1.1/re31.html로드 DOC : http://svnbook.red-bean.com/en/1.0/re36.html

다른 팁

당신이 사용할 수있는

svn copy http://my.server/svn/repos/ http://my.server/svn/repos/trunk/ \
     -m "Copied"

저장소 루트 (^/)에서 트렁크/(^/trunk)까지 사본을 만들려면 루트 디렉토리를 포함한 모든 기록을 유지하십시오.

그 후 다음 커밋의 이전 위치에서 파일과 하위 디렉토리를 제거 할 수 있습니다.

SVN MV 파일을 사용하면 기록을 잃지 않을 것입니다. 역사는 유지 될 것입니다. 따라서 Svnadmin Load -perent -Dir 트렁크를 사용하여 저장소를 다시 실행할 수 있지만 새로운 저장소에 새로운 UUID가 있어야하므로 모든 것에 대한 새로운 체크 아웃을해야합니다.

svn co http://example.com/repos/
cd repos
svn mkdir trunk tags branches
svn mv a trunk/a
svn mv b trunk/b
svn ci -m 'Moving project into trunk'

이상적인 솔루션은 아니지만, 컨텐츠가 이전 저장소의 모든 코드이지만 트렁크 등으로 멋지게 형식화되는 완전히 새로운 저장소를 작성하지 않는 이유는 무엇입니까?

이것은 날짜 X 이전에 항목의 이력을 알아야한다면 새 저장소를 봐야한다는 것을 기억해야한다는 것이 고통 스럽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top