2010-02-25 3 views
34

관련 질문을 하나의 디렉토리를 이동 : Moving repository trunk to another’s branch (with history)SVN은 (역사) 다른 저장소에


내가 하나가 역사를 가진 완벽한 SVN 저장소를 덤프 및 사용자 정의 (하위)에로드 할 수 있다는 것을 알고 디렉토리를 사용하여 대상 저장소의 디렉토리 :

// in source repo 
> svnadmin dump . > mydumpfilename 

// in destination repo (backslashes because I'm using Windows) 
> svnadmin load . < mydumpfilename --parent-dir some\sub\directory 

그러나 이것은 전체 저장소를 대상 저장소의 하위 디렉토리로 가져옵니다. 내가 원하는 것은 내보낼 소스 저장소에 하위 디렉토리를 정의하는 것입니다. svnadmin dump . --source-path old\sub\dir > mydumpfilename과 같은 것입니다.

어떻게하면됩니까?

// execute in destination repo 
svndumpfilter include source\sub\dir < mydumpfilename | svnadmin load . --parent-dir destination\sub\dir 

희망이 다른 사람을 도움이 될 것입니다, 너무 : 팀 Henigan의 대답에 감사합니다, 여기에 그것을 할 올바른 방법입니다 :


솔루션) TortoiseSVN을 그렇게 할 수 있다면, 그렇게 말하십시오 ...

+0

Subversion 버전이 저장소 전체에 적용되므로 수동으로 모든 변경 사항을 복사하고 다시 적용하는 것 외에는 수행 할 수 없다고 생각합니다. 따라서 기록이있는 단일 디렉토리를 이동하는 것은이 경우 실제로 적용되지 않습니다. 즉 단일 파일이 리비전되지는 않지만 전체 리포지토리가 리비전되고 전체 리포지토리의 diffs가 저장됩니다 – Zenon

+0

대단히 감사합니다. – richo

+2

사실 이것은 이야기의 절반에 불과합니다. 'svndumpfilter exclude source \ sub \ dir '을 사용하여 소스 저장소에서 디렉토리를 제거해야합니다. http://stackoverflow.com/questions/205296/delete-file-contents-from- svn-history – Tino

답변

20

svndumpfilter과이 섹션은 Repository Maintenance입니다.

이전 저장소 전체에 대한 덤프 파일이 있으면 svndumpfilter을 사용하여 원하는 부분 만 추출 할 수 있습니다.

TortoiseSVN을 사용하여이 작업을 수행 할 수있는 방법을 모르겠습니다.

+0

을 참조하십시오. 매우 멋진 솔루션으로 완벽하게 작동합니다. 고마워요! – AndiDog

+0

그리고 로컬 시스템에서 작동하지 않는 이유가 혼란 스럽다면'svndump'가 실제 저장소 소스에서 실행되기로되어 있기 때문입니다. 대신에'svnrdump'를 사용하십시오 - http://stackoverflow.com/questions/8866035/unable-to-do-an-svn-dump-error-e720002-and-format-errors – drzaus

0

TortoiseSVN을 사용하여 두 리포지토리의 로컬 복사본을 가져온 경우 실제로 디렉터리와 파일을 마우스 오른쪽 단추로 클릭하여 디렉터리를 다른 위치로 복사 할 수 있습니다) Repo1에서 Repo2로 드래그하십시오. 마우스를 놓으면 당신은 옵션의 목록을 얻을 것이다 :

enter image description here

"SVN 내보내기 버전 항목을 여기에"역사 (재귀 적으로) 복사합니다.

+0

나는 역사를 얻지도 않고 그것은 repo에 파일을 추가 - 내가 뭘 놓치고있어? – drzaus

+0

@drzaus : 항목을 로컬로 이동 한 후에는 항목을 저장소로 커밋해야합니다. 그렇게 할 때까지 SVN은 항목이나 기록을 새 저장소에 등록하지 않습니다. – noisiveRevision

+0

내보내기를 한 후에 방금 내 보낸 모든 버전 화되지 않은 파일을 수동으로 추가해야하며 SVN에 커밋 된 후 해당 기록을 포함하게됩니까? – drzaus

관련 문제