2013-08-23 5 views
0

클러스터에서 디렉토리를 가져 와서 로컬 트렁크를 만들려고합니다. 나는 이것을하기 위해 svn + ssh를 사용하려고 노력하고있다. ssh를 통해 ssh를 가져 오려고 시도합니다.

svn import svn+ssh://[email protected]:/path/to/file file:///path/to/svn/repo/trunk -m "Initial import from cluster" 
svn: 'svn+ssh://[email protected]:/path/to/file' does not exist 

이 명령에 뭔가 문제가 있나요? 연결에 관한 초기 질문을 명확히하기 위해 ssh를 사용하여 문제없이 클러스터에 로그인 할 수 있으며 파일 경로가 정확합니다. 로컬 리포지토리가 작동 중이며 로컬로 리포지토리에 다른 분기가 있습니다.

답변

0

우선 svn + ssh : // URL에서 : after 사용자 @ cluster가 필요하지 않습니다.

둘째로 하나의 저장소에서 다른 저장소로 가져 오기를 사용할 수 없습니다.

이 작업을 위해 svnrdump 또는 svnsync를 권하고 싶습니다. 당신이 뭔가를 할 거라고 svnsync

사용하려면

svnadmin create repo 
svnrdump svn+ssh://[email protected]/path/to/repo | svnadmin load repo 

svnsync 아마 당신이 계속 계속하려면 일을 할 수있는 가장 좋은 방법입니다 :

svnadmin create repo 
echo '#!/bin/sh' > repo/hooks/pre-revprop-change 
echo 'exit 0' >> repo/hooks/pre-revprop-change 
chmod a+x repo/hooks/pre-revprop-change 
svnsync init file://`pwd`/repo svn+ssh://[email protected]/path/to/repo 
svnsync sync file://`pwd`/repo 

또는 svnrdump와

이후에 sync 명령을 실행하여 상대방과 일치하도록 저장소를 업데이트 할 수 있기 때문에 저장소의 미러를 로컬로 미러링 할 수 있습니다. 로컬 저장소에 다른 변경 사항을 적용하면 계속해서이 기능을 사용할 수 없게됩니다. 여기 svnsync에 대한 자세한 내용을보실 수 있습니다 : http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.replication

svnsync 방향이 유닉스 환경을 가정합니다. Windows를 사용하는 경우 pre-revprop-change 후크에 대한 비트를 박쥐 파일로 교체해야 할 수 있습니다. 당신은 여기에 몇 가지 세부 사항을 찾을 수 있습니다 What is a pre-revprop-change hook in SVN, and how do I create it?

svnrdump은 그냥 REPO 포크와 별도로 로컬에서 작업 할 경우 아마도 더 좋다. 여기 svnrdump에 대한 자세한 읽을 수 있습니다 : http://svnbook.red-bean.com/en/1.7/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate.svnrdump

이 이상적으로 우리가 십자가 저장소 병합에 대한 더 나은 지원이있을 것이다, 당신이 실제로 무엇을 찾고 있는지의 라인을 따라 더 될 수도 있지만 나는 좋은 해결책이없는 그에 대한. 하고 공급 업체의 지점이 아니라 끔찍한 방법이있다 : 이것에 대한 http://svnbook.red-bean.com/en/1.7/svn.advanced.vendorbr.html

+0

감사합니다, 나는 로컬 컴퓨터에 지점을 만들려고하고, 나는 REPO에 REPO를 복사하는 것을 시도하고 있지 않다, 나는 디렉토리를 가져 오기 위해 노력하고 있어요 repo (첫 번째 커밋). 내가 이상적으로 디렉토리를 복사하고, 로컬로 지점을 만들고, 클러스터에서 저장소를 만든 다음 여기에서 한 작업을 수행 할 수 있습니다. 그러나 그것이 유일한 방법입니다. 왜냐하면 당신이 말했듯이, 그것은 아주 추악합니다. –

+0

실제로 svn + ssh : // 저장소를 제어하는지 잘 모르겠습니다. 그러나 솔직히 Subversion은 이러한 종류의 분기를 위해 만들어지지 않았습니다. 로컬 브랜치를 만들기보다는 서버에서 브랜치를 만들기 위해'svn cp'를 사용하는 것이 훨씬 낫다. 양측을 제어하는 ​​경우 분산 버전 제어 시스템을 사용하는 것이 바람직 할 수 있습니다 (예 : git, mercurial). –

+0

'svn + ssh : //'저장소를 제어하지만 내가 말하는 것을 보았습니다. 나는 지금 svn을 고수하고 내가 할 수있는 모든 것을 가지고 놀려고 노력할 것이라고 생각한다. 아무것도 작동하지 않으면, 나는 자식에게 포팅을 시도 할 것이다. 감사! –