2012-01-20 2 views
0

현재 현재 작업중인 프로젝트는 버전 제어를 위해 SVN을 사용합니다. 처음에 (현재 사용 가능하지 않은 다른 사용자가) 작성했을 때 서버의 'public_html'폴더가 다음 폴더로 체크 아웃되었습니다. https://URL/project_name/ 'project_name'이 저장소의 루트가됩니다. 그것은 분명히 우리가 필요로하는 것처럼 보이지 않았기 때문에 브랜치/태그를위한 구조를 제공하지 않았습니다.SVN 재검색 (스위치/재배치/다른 것?)

여러 버전의 프로젝트에서 병렬 작업을 구성하기 위해 브랜치가 필요하다는 것을 알게되었으므로 우리는 적절한 구조 (URL/project_name/trunk/주 버전 및 URL/project_name/branch/... 보조 항목). 저장소 자체를 구성하는 데는 문제가 없지만 서버의 'public_html'폴더에 대한 새 체크 아웃을 수행하려면 어떻게해야합니까? 'svn 체크 아웃 URL/project_name/trunk/home/public_html'을 실행하려고하면 'public_html'이 이미 다른 URL의 작업 복사본이라는 오류 메시지가 나타납니다.

나는 Tortoise SVN을 통해 로컬 테스트 머신에서 svn 스위치와 svn relocate 옵션을 시도했지만 이전 버전은 동일한 저장소의 분기 간을 전환하는 것으로 작동하며 후자는 루트의 지정을 요구한다. 저장소 (및 체크 아웃 폴더로 URL/project_name/trunk를 지정해야 함). 이 상황에서 누군가가 나를 도울 수 있습니까?

서버에 대한 루트 SSH 액세스 권한이 있습니다.

답변

2

:

다른 방법을 넣어, 당신은 당신의 작업 복사본이 같은 저장소에 동일한 위치를 참조 때 재배치 할 필요가 있지만, 저장소 자체가 이동했습니다. 당신은 다른 Subversion 저장소로 이동하려는

: 경우

이 적용되지 않습니다. 이 경우 새 저장소 위치에서 깨끗한 체크 아웃을 수행해야합니다.

동일한 저장소 내의 다른 분기 나 디렉토리로 전환하고 싶습니다. 이렇게하려면 TortoiseSVN → 스위치를 사용해야합니다 .... Read 자세한 내용은 4.19.2 절, "체크 아웃 또는 전환 ..."을 참조하십시오.

그럼, 새로운 새로운 사본을 체크 아웃해야합니다. 디렉토리의 전체 내용을 삭제 한 다음 체크 아웃하거나 새 디렉토리로 체크 아웃 한 다음 새 디렉토리의 이름을 이전 디렉토리의 이름으로 바꿉니다. project_name이 루트 폴더 인 경우

+0

새로운 복사본을 체크 아웃하려고 시도한 것처럼 들립니다. 'public_html'디렉토리의 내용을 어떻게 삭제해야합니까? – parrker9

+0

Ctrl-A로 Windows 탐색기의 모든 컨텐츠를 선택하고 키보드의 Delete 키를 누릅니다. –

+0

'.svn'이 'public_html'에서 삭제 되 자마자 나는 새로 체크 아웃 할 수 있어야합니다. 맞습니까? – parrker9

2

svn을 project_name을 트렁크로 옮기십시오. 파일 시스템을 직접 변경하지 마십시오. repo 파일에는 아무런 영향을주지 않습니다. 대신 svn 명령을 사용하십시오.

// in URL (parent folder of project_name) 
svn mkdir trunk 
svn mkdir branches 
svn mkdir tags 
svn move project_name trunk 
svn ci -m 'moved' 

등함으로써 해결할 수

당신이 상위 폴더가없는 경우, 당신은 하나에 의해 프로젝트 이름 루트 하나 "SVN 이동"모든 파일 및 디렉토리에있을 것이다. TortoiseSVN Help에서

+0

좋아요! 이것은 실제로이 문제를 다루는 자연스러운 방법처럼 느껴집니다. 그리고 네, 부모 폴더가 없기 때문에 몇 가지 수동 작업이있을 것입니다. 나는 이것이 행해졌을 때 내 'public_html'디렉토리가 트렁크 폴더를 참조하도록하기 위해 'svn switch/home/public_html/URL/project_name/trunk'를 사용할 수 있습니까? – parrker9

+0

예 스위치 옵션을 잊어 버렸습니다. 로컬 복사본이 트렁크를 가리킬 것입니다 – vaugham

1

당신은 그 아래 지점/태그/트렁크 구조를 만들고 (물론 지점/태그/트렁크 제외) 수동 svn moveproject_name에 포함 된 각 파일/폴더에 대한 작업을 수행 할 수 있습니다. 따라서 커밋의 모든 기록을 보존 할 수 있습니다. 지루하고 안전하지만!

0

TortoiseSVN과 같은 SVN에 GUI를 사용할 수 없습니까 ??? 나는 repo에서 물건을 재배치하는 것이 마우스 오른쪽 버튼으로 드래그하고 적절한 옵션을 선택한 다음 커밋하는 것만 큼 쉽다라고 생각합니다.

또한 repo-browser에서 시도 할 수 있습니다. http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-dug-rename.html