2009-09-08 8 views
7

문제는 간단합니다. git cvsimport를 사용하여 CVS 저장소를 로컬 git 저장소의 원격 지점으로 가져 왔습니다. 그런 다음 저장소, 태그 및 모든 저장소를 클라우드의 git 저장소 (github/gitorious)에 동기화하려고합니다. 이렇게하려면 rsync에 대한 액세스 권한이 없거나 저장소를 직접 복사 할 필요가 없습니다. git push를 사용해야합니다.푸시 버튼으로 리모컨 하나를 미러링하는 방법

다른 사람이 전체 _cvsimport_d 기록에 액세스 할 수 있도록 로컬 저장소를 미러링하려면 어떻게해야합니까? 구체적

:
I 가져오고 cvsimport하여 저장소를 추적 다음 자식의 repo cdt-에서 원격으로 CVS

git cvsimport -i -v -C cdt-make-core -d :pserver:[email protected]:/cvsroot/tools -r cvs org.eclipse.cdt/all/org.eclipse.cdt.make.core

상기 수입 org.eclipse.cdt.make.core make-core.

git push github cvs/master:refs/heads/cvs/HEAD

(나는 원격 명시 적으로 존재하지 않는, 그래서이 만들어지는의 경로를 지정합니다.)

인가 :

그때 GitHub의 메인 CVS 지점의 머리를 밀어 수 있습니다 거기에 모든 지점을 동기화하는 방법 : cvs/* => cvs/* 원격?
모든 태그를 동기화하는 방법이 있습니까?

답변

3

아래의 두 번째 합리적인 솔루션을 사용하면 - 미러을 먼저 수행해야합니다. 왜냐하면 그것이 밀어 넣으려는 CVS/브랜치를 없애기 때문입니다. 따라서 전체 공식은 다음과 같습니다.

git push --mirror -v github 
git push --force github cvs/master:refs/heads/cvs/HEAD 
for x in `git branch -r | grep '^..cvs/[a-zA-Z0-9_-]*$' | sed -e 's/^..//'` ; do 
    git push -v github $x:refs/heads/$x 
    git config branch.$x.remote github 
    git config branch.$x.merge refs/heads/$x 
done 
5

난 당신이 밀어 --mirror 옵션을 찾고 있다고 생각 :이 모든 심판이 아닌 빨리 감기 업데이트를 포함하여 (브랜치와 태그)를 밀어 버린다

git push --mirror github 

. 로컬 저장소의 백업을 만들 때이 방법을 사용합니다.

man page

이렇게하여 설명

대신 밀어 각 REF 네이밍, (refs/remotes/refs/tags/ 포함하지만 refs/heads/에 한정되지 않는다) $GIT_DIR/refs/ 미만 심판이 미러링되도록 지정 원격 저장소. 새로 생성 된 로컬 참조는 원격 끝으로 푸시되고 로컬에서 업데이트 된 참조는 원격 끝에 업데이트되며 삭제 된 참조는 원격 끝에서 제거됩니다. 구성 옵션 remote.<remote>.mirror이 설정된 경우 이것이 기본값입니다.

[OT :! 내 일상 업무에서 CDT를 사용하고 난 그것을 사랑]

+0

감사합니다. 불행히도 이것은 내가 원하는 것을하지 않는 것 같습니다. 이렇게하면 클라우드의 저장소가 광산처럼 보이게되어 github 저장소에 'cvs'원격이 있지만 눈에 보이는 cvs 분기가 없음을 의미합니다. 리모트/cvs/*의 전체 내용을 github의 cvs/*에 복사하고 싶습니다. –

+0

아, 이제 알겠습니다. 막 다른 길에 미안해. –

1

이 실험을하는 데, 나는 거기에 생각하지 않는 내장 내가하고자하는 것을 지원.

  • -r이 cvsimport를 지정하지 마십시오

    그러나이 합리적인 해결책이있을 것 같다.
    가져온 브랜치는 저장소에 직접 존재하며 - 미러은 Pat이 제안한대로 사용할 수 있습니다.

  • 한 번에 하나씩 * cvs/** 리모트를 푸시 (push)하기위한 쉘 스크립트를 작성하십시오.
    사용 --mirror 태그가 제대로

을 동기화 그래서 나는 원래 cvsimport D 지점은 네임 스페이스 지정을 위해 별도로 보관하고 싶었다. 그러나 첫 번째 옵션을 사용하면 cvsimport 저장소를 완전히 분리 된 상태로 유지하는 것이 좋습니다. 추적 CVS를 계속 추적 할 수 있습니다.

관련 문제