2014-11-06 2 views
0

온라인 svn 저장소의 미러 저장소를 만들려고하므로 온라인 repo에서 변경 사항을 동기화 할 수있는 소스 코드가 있습니다. 미러 repo에서 코드를 체크 아웃하기 시작하십시오. 그것에 변화를 주려고.svnsync를 사용하여 만든 미러 리포지토리의 코드를 체크 아웃 할 수 없습니다.

svnsync을 사용하여 단계를 수행 한 후 실제로 첫 번째 svnsync sync 명령을 수행 한 후에 미러 코드에 소스 코드가 복사되지 않았습니다.

나는 svnsync의 오해가 있거나 모든 svn 미러링 메커니즘을 오해하고 있습니까? 어떻게 내가 미러 repo에서 코드를 체크 아웃 할 수 있습니다. 그것에 착수하기 시작 했습니까?

참고 다음과 같이 미러 svn repo를 만들었습니다.

$ svnadmin create dest 
$ cat <<'EOF' > dest/hooks/pre-revprop-change 
#!/bin/sh 
USER="$3" 

if [ "$USER" = "svnsync" ]; then exit 0; fi 

echo "Only the svnsync user can change revprops" >&2 
exit 1 
EOF 

$ chmod +x dest/hooks/pre-revprop-change 
$ svnsync init --username svnsync file://`pwd`/dest http://thesource/source/repos 
$ svnsync sync file://`pwd`/dest 

답변

0

svnsync을 사용하여 미러를 만드는 단계에서 누락 된 단계를 발견했습니다. 다음 blog post and the second comment in the post에 설명 된대로 문제는 다음과 같은 명령을 사용하여 공용 저장소를 덤프 해결 :

$ svnrdump dump http://sourceRepo/svn/repo > /tmp/sourceDump

우리가 선택적으로 특정 개정이나 개정 범위를 덤프 -rX 또는 -rX:Y를 사용할 수 있습니다.

$ svnadmin load /pathToCreatedRepo/destRepo < /tmp/sourceDump 

우리가 지금 할 것입니다 우리는 다음과 같은 명령을 사용하여 새 destRepo에 덤프 파일을 가져와야 그 후

$ svnadmin create destRepo 
$ cat <<'EOF' > /pathToCreatedRepo/destRepo/hooks/pre-revprop-change 
#!/bin/sh 
USER="$3" 

if [ "$USER" = "svnsync" ]; then exit 0; fi 

echo "Only the svnsync user can change revprops" >&2 
exit 1 
EOF 

$ chmod +x /pathToCreatedRepo/destRepo/hooks/pre-revprop-change 

: 그 후 우리는 다음 명령을 사용하여 미러 저장소를 작성하기 시작 우리가 여기은 A를 추가해야합니다

$ svnsync initialize --allow-non-empty file:///pathToCreatedRepo/destRepo http://sourceRepo/svn/repo 

: 동기화 초기화 다음 명령을 사용하여 rgument --allow-non-empty SVN을 이전에로드 된 기존 덤프와 동기화 할 수있게합니다. 우리는 지금 내가 지금 거울 저장소 : 나는 지금의 repo를 복제하기 위해 노력하고있어

0

아메드,

난 당신이/풀 앞뒤로 커밋 밀어 수 있습니다 자식처럼 SVN 저장소를 취급하지 않는 것이 좋습니다.

로컬 오프라인 미러를 다루는 것이 중요하다면 git-svn은 여기 해결책이지만 신중하게 먼저 배우십시오.

+0

에서 코드를 체크 아웃 할 수있어 새로운 destRepo

$ svnsync sync file:///pathToCreatedRepo/destRepo 

에 일반 sync 전화를 할 수 있습니다. 'git-svn'을 사용하지만 문제는 우리 회사의 내부 인프라에 있으며 SVN에서 GIT가 아닌 SVN이 필요합니다 Maher에게 감사드립니다 –

+0

로컬 저장소에 공개 저장소의 기록을 유지해야합니까? 또는 스냅 샷을 정렬하여 모든 항목을 완전히 다시 가져올 수 있습니까? –

+0

공용 저장소의 커밋을 따라야하지만 오래된 기록은 신경 쓰지 않아요. –

관련 문제