2009-08-30 5 views
10

를 체크 아웃, 나는이 있다고 가정 할 수 있습니다.서브 버전 저장소 (repository)에서 상위 디렉토리

작업 복사본, Dog 디렉토리 및 Checkout Animal을 삭제할 수 있지만 다시 삭제하거나 체크 아웃하지 않으면 어떻게 할 수 있습니까?

Dog의 작업 복사본에 Animal이 상위 폴더로 있고 Dog를 삭제하지 않고 Animal을 체크 아웃하는 경우 "Subversion에서 버전이 같은 동일한 이름의 디렉토리를 추가하지 못했습니다."와 같은 메시지가 표시됩니다.

나는 거북이도 사용하고 있습니다. 감사.

+3

삭제 및 체크 아웃 문제는 무엇입니까? 이미 변경을했다면 커밋 한 다음 다시 시작하십시오. – kajaco

+1

문제가되지 않습니다. 그것이 내가 한 일이고 그것이 효과가있었습니다. 내가 더 나은 방법이 있는지 궁금해하거나, 이것을하는 더 정확한 방법이 있습니다. – Steve

답변

4

이것은 직접 가능하지 않습니다.

가장 쉬운 방법은 작업 복사본을 삭제하고 Animal의 새로운 체크 아웃을하는 것입니다.

는 보관하려는 Dog의 변경이있는 경우, 임시 위치에 Dog 이동, 체크 아웃 Animal 한 다음 다시 Animal 디렉토리에 Dog를 복사합니다.

2

svn switch을 찾고 있습니다. 작업 경로가 새로운 경로를 반영하도록 업데이트됩니다. 하지만 수정 된 파일은 손대지 않습니다. TortoiseSVN에서 마우스 오른쪽 버튼을 클릭하고 컨텍스트 메뉴에서 "전환 ..."을 선택하십시오.

svn switch의 일반적인 사용 사례는 동일한 코드를 다른 시각에서 볼 수 있도록 동일한 지점을 루트로하는 분기 간을 전환하는 것입니다. 하지만 저장소의 임의 경로 사이를 전환 할 수 있습니다.

+1

그러나 상위 디렉토리 인 Animal은 버전 관리하에 있지 않으므로 Tortoise가 아닌 상위 버전으로 전환 할 수 없습니다. 어쩌면 커맨드 라인을 통해? – Steve

+1

나는 혼란 스럽다. 버전 관리하에 있지 않은 경우 저장소에 Animal이 어떻게 있습니까? 그건 오타예요? –

+1

나는 Animal을 만들기 위해 copy (branch)를했다. 내 작업 복사본에서 Animal에는 .svn 디렉토리가 없습니다. 저장소 폴더와 이름이 같은 폴더입니다. 그래서 내 작업 디렉토리는 저장소 구조의 정확한 복제본이지만 Dog to Dog를 체크 아웃했습니다. 희망은 그 말이 맞습니다. – Steve

0

이미 내 디스크에있는 내용을 svn 서버에서 다운로드하지 않도록 확인한 후 업데이트 또는 체크 아웃은 --depth empty을 사용하여 수행됩니다. 따라서 다음과 같이합니다 : svn co --depth empty Animal ; cd Animal ; svn update --depth empty Dog

어쨌든, DogAnimal/.svn/entries의 디렉토리로 가져 오는 것이 좋습니다.

이 " --depth empty는"실제 내용을 다운로드 svn을 유지하지만 SVN은 (이 경우 Dog)을 하위 디렉토리를 만들 수행하고 SVN은 Animal/.svn/entries에서 Dog 하위 디렉토리에 대한 항목을 넣어 않습니다.

그런 다음 Dog 하위 디렉토리를 기존 사본으로 대체하십시오.

Dog에있는 파일 중 하나를 두드리고 Animal 디렉토리에서 svn update을 수행하면이 방법이 작동하는지 확인할 수 있습니다. 구타 된 파일은 svn 서버에서 끌어 내려야합니다.

+0

작동하지 않는다 : 'Updating'을 얻었습니다. : 건너 뛰기 'trunk'- 작업 복사본을 막았습니다 수정본 13370. 충돌 요약 :건너 뛰기 경로 : 1''svn up' 'Animal'에서. –

+0

오랜 시간이 걸렸으므로 문제가 무엇인지 잘 모르겠습니다. SVN은 Animal and Dog 디렉토리를 만들어야합니다. 안 그래야합니까? 따라서 작업 복사본을 방해해서는 안됩니다. 또 다른 아이디어는 아마도 '13'이후 SVN이 변경되었으므로 더 이상이 트릭이 작동하지 않습니다. –

0

예, 상위 디렉토리를 매핑 할 수 있습니다.

이렇게하려면 "Dog"(하위) 디렉토리에서 .svn 디렉토리를 삭제하고 상위 디렉토리에서 SVN Update을 수행하면됩니다. 기존 파일을 Versioned 사본으로 만들고, SVN 서버에서 Dog 디렉토리의 델타 내용을 다운로드합니다.

참고 사항 : 정확한 디렉토리 구조가 SVN 디렉토리 구조로 있어야합니다.

관련 문제