2009-08-24 7 views
4

로컬 작업 디렉토리에 파일을 체크 아웃하는 데 사용되는 네트워크 저장소가 있습니다. 그건 잘 작동합니다. 내가 지금하고 싶은 것은 저장소 또는 로컬 버전 중 하나를 가져 와서 새로운 저장소로 밀어 넣는 것입니다. 내가 어떻게 할 수 있니? 기본적으로 내 저장소를 내 네트워크에서 온라인 svn (프로젝트 보관함)으로 복사하려고합니다. 설명하기가 어렵습니다. 나는 일시적으로 로컬 파일을이 온라인 svn에 연결하여 코드를 거기에 푸시 (push) 할 수 있습니다. 제안 사항Repoint tortoiseSVN 저장소

+0

온라인 제공 업체가 리포지토리를 가져 오는 방법에 대한 지침이 없습니까? – sbi

답변

1

변경 사항을 다른 위치로 푸시하려고하는 경우 리포지토리를 새 URL로 "재배치"하려고 할 수 있습니다. 폴더를 마우스 오른쪽 버튼으로 클릭하고 TortoiseSVN-> Relocate를 선택하면됩니다.

새 저장소를 만들려는 경우 폴더를 복사하고 모든 .svn 폴더를 삭제 한 다음 전체 디렉토리를 새 저장소에 체크인 할 수 있습니다.

2

svnadmin dump을 사용하여 로컬 저장소의 덤프를 만든 다음 호스트 환경에 덤프를 업로드하여 svnadmin load이되도록해야합니다. 나는 당신이 거북을 사용하여 덤프를 생산할 수 있다고 생각하지 않는다. 당신은 전체 svn 설치가 필요합니다.

0

SVN switch --relocate 명령을 확인하십시오.

+0

리포지토리가 이동 한 경우 위치 재 지정이 사용됩니다. 그/그녀는 저장소의 내용을 이동하고자합니다 –

1

내역을 신경 쓰지 않는다면 svnadmin dump 해결책을 찾아 볼 것입니다. 그런 다음 작업 복사본을 내보낼 지 확인하십시오. 재배치 등 원하는대로하지 않습니다 (내가 잘못 이해하지 않는 한)

6

당신이 덤프하고 귀하의 호스팅 사이트에로드 할 수 있습니다 동안, 그들은 당신에게 덤프를로드하는 셸에 대한 액세스를 제공하지 않을 수 있습니다 새로운 저장소. repo 디렉토리를 복사 할 수 있지만 이 아닌 플랫폼을 변경하는 경우 (예 : Windows에서 Linux 호스트로 이동)이 작업을 수행하십시오.

그러나이 모든 것이 문제가되지 않습니다. 가장 쉬운 방법은 svnsync을 사용하는 것입니다. (아직없는 경우) 새로운 저장소를 만든 다음 실행 : 당신은 모든 변경을 허용하기위한 사전 revprop - 변경 후크를 설정해야합니다

svnsync init http://url/to/new/repo http://url/to/old/repo 

(단지 '출구 0'후크에서 스크립트)이 완료 일단

, 그냥 입력 :

svnsync --non-interactive sync http://url/to/new/repo 

하고 완벽한 사본을 끝낼 그래서, 새로운 일에 현재의 저장소에서 각 버전을 재생합니다. 원하는대로 동기화를 중단하고 다시 실행하면 중단 된 부분부터 계속 진행됩니다. (주의 : 당신은 Ctrl 키 + C를 함께 죽이면, 당신은 그것을 사용하는 잠금 장치를 제거해야 할 수 있습니다 입력이을 취소 할 수 있습니다.)

svn propdel svn:sync-lock --revprop -r 0 http://url/to/new/repo 

하나의 큰 이점은 당신이 나중에 백업으로 기존의 저장소를 사용할 수 있다는 것입니다 새 repo를 소스로 다시 초기화하고 기존 repo를 동기화하면 필요에 따라 모든 최신 커밋을 재생합니다.

+0

나는 이런 식으로 새로운 고객을 얻을 수 있기 때문에 호스팅 시설에서 수입품을 제공 할 가능성이 높습니다. 그래도 난 당신의 접근 방식이 더 좋아. –

+0

당신은이 호스트에 대해 잘 모를 것입니다.게다가, 나는 그것을 사용하기에는 너무 많은 svnsync를 좋아한다. 그것은 훌륭하다. – gbjbaanb