2013-01-20 4 views
4

외부 svn 저장소의 부분 미러를 만들려고합니다. http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.reposadmin.maint.replication.svnsync-partial에 따르면, 이것은 svn 1.5에서 가능해야합니다.소스 경로가 추가되었을 때 부분 svnsync가 수정시 실패합니다.

나는 'svnsync'사용자를 사용하지 않았다는 것을 제외하고 http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.reposadmin.maint.replication.svnsync에 설명 된 모든 단계를 수행했습니다. 대신 모든 명령은 로컬 사용자 'svn'로 실행되고 로컬 저장소는 file : // 프로토콜을 사용하여 액세스됩니다.

그래서, 여기에 내가 무슨 짓을했는지 :

$ svnadmin create /var/svn/mirrors/foreign-mirror 

$ cat > /var/svn/mirrors/foreign-mirror/hooks/pre-revprop-change <<EOF 
#!/bin/sh 
USER="$3" 
if [ "$USER" = "svn" ]; then exit 0; fi 
echo "Only the svn user may change revision properties" >&2 
exit 1 
EOF 

$ chmod +x /var/svn/mirrors/foreign-mirror/hooks/pre-revprop-change 

$ cat > /var/svn/mirrors/foreign-mirror/hooks/start-commit <<EOF 
#!/bin/sh 
USER="$2" 
if [ "$USER" = "svn" ]; then exit 0; fi 
echo "Only the svn user may commit new revisions" >&2 
exit 1 
EOF 

$ chmod +x /var/svn/mirrors/foreign-mirror/hooks/start-commit 

$ svnsync initialize \ 
file:///var/svn/mirrors/foreign-mirror \ 
https://svn.foreign.com/svn/Projects/X/Y \ 
--source-username #### --source-password #### 

$ svnsync synchronize \ 
file:///var/svn/mirrors/foreign-mirror \ 
--non-interactive --source-username #### --source-password #### 
Committed revision 1. 
Copied properties for revision 1. 
Committed revision 2. 
Copied properties for revision 2. 
... 
Committed revision 80089. 
Copied properties for revision 80089. 
Committed revision 80090. 
Copied properties for revision 80090. 
svnsync: Path 'Projects' not present 

는 SVN 로그에서 상대 :

$ svn log https://svn.foreign.com/svn/Projects/X/Y -v -r80091 
------------------------------------------------------------------------ 
r80091 | John.Doe | 2011-09-27 06:42:21 +0200 (Tue, 27 Sep 2011) | 1 line 
Changed paths: 
    A /Projects/X/Y 

나는 그것이/프로젝트를 찾을 수 없기 때문에 # 80091 실패 커밋 재생,을 제대로 이해한다면 . 이것은 나를 혼란스럽게합니다. 존재하지 않는 경로를 건너 뛰는 부분 복제 지점이 아닌가?

저는 우분투 리눅스 (대상 저장소)에서 svn 1.6.6을 실행하고 있으며이를 완전히 제어 할 수 있습니다. 나는 소스 저장소를 제어 할 수 없으며 사용자 이름과 암호는/Projects/X/Y 이하에만 액세스 할 수 있습니다./Projects 또는/Projects/X에 액세스 할 수 없습니다.

이 문제를 극복 할 수있는 방법이 있습니까? 특정 버전에서 복제를 시작 하시겠습니까? 어떤 제안이라도 대단히 감사합니다.

답변

2

나는 svnsync 문제에 대한 조언을하지 않습니다하지만 당신은 당신이 svk을 시도 했

"I'm trying to make a partial mirror of an external svn repository.". 

할 노력하고 있습니다. 비록 그것이 중단 된 프로젝트입니다. Subversion 저장소의 부분 거울을 만드는 것은 아주 좋은 도구입니다. 나는 가끔 서브 프로젝트의 부분 히스토리를 얻기 위해 그것을 사용했다. Subversion 디렉토리 구조를 따르고 있다고 가정 해 보겠습니다.

 
trunk 
    MainProject 
    HelperTools 
    ImportantToolAsSubProject 
branches 
tags 

SVK은/트렁크/HelperTools/ImportantToolAsSubProject의 전복 기록을 만들 수 있습니다. 이 디렉토리에 100 개의 커밋 만있는 경우. 생성 된 Subversion 저장소에는 100 개의 커밋 만 있습니다.

+0

나는 그것을 한 번 시도해 볼 것입니다. 감사! – Pat

+0

링크가 "어딘가"로 리디렉션됩니다. – KingCrunch

+0

나는 그들이 svk를 완전히 지원하는 것을 중단했다고 생각한다. –