자식 svn을 사용하여 체크 아웃 원격 지점


188

git svn을 사용하여 svn 저장소를 체크 아웃했습니다. 이제 지점 중 하나를 체크 아웃하고 추적해야합니다. 가장 좋은 방법은 무엇입니까?

답변:


355

표준 Subversion 레이아웃

Subversion 트렁크, 태그 및 분기를 포함하는 git 복제본을 만듭니다.

자식 svn 클론 http://svn.example.com/project -T 트렁크 -b 가지 -t 태그

--stdlayout서브 버전 저장소가 전형적인 구조를 사용하는 경우 옵션은 좋은 지름길입니다 :

자식 svn 클론 http://svn.example.com/project --stdlayout

자식 저장소가 Subversion 저장소가하는 모든 것을 무시하게하십시오.

git svn show-ignore >> .git / info / exclude

이제 자식 쪽에서 모든 Subversion 분기를 볼 수 있습니다.

자식 분기 -r

Subversion의 지점 이름이 waldo 입니다. 자식 쪽에서는

git checkout -b waldo-svn 리모컨 / waldo

-svn 접미사는 형식의 경고를 피하는 것입니다

경고 : refname 'waldo'가 모호합니다.

자식 분기를 업데이트하려면 waldo-svn 다음을 실행하십시오.

git checkout waldo-svn
자식 svn rebase

트렁크 전용 체크 아웃에서 시작

트렁크 전용 클론에 Subversion 브랜치를 추가하려면 .git/config포함 할 git 저장소를 수정하십시오.

[svn- 원격 "svn-mybranch"]
        url = http://svn.example.com/project/branches/mybranch
        가져 오기 = : refs / remotes / mybranch

달리는 습관을 길러야합니다

자식 svn fetch --fetch-all

git svn별도의 리모콘이라고 생각하는 모든 것을 업데이트합니다 . 이 시점에서 위와 같이 분기를 작성하고 추적 할 수 있습니다. 예를 들어 mybranch에 해당하는 자식 분기를 만들려면 다음을 실행하십시오.

자식 체크 아웃 -b mybranch-svn remotes / mybranch

당신이하려는 지점에 대해 git svn dcommit, 그들의 역사를 선형으로 유지하십시오!


추가 정보

관련 질문에 대한 답변을 읽는 데 관심이있을 수도 있습니다 .


git svn clone을 사용하여 트렁크를 체크 아웃했기 때문에 이것은 작동하지 않습니다. 체크 아웃 할 분기를 설정하지 않았습니다 ... 나는 먼저해야한다고 생각합니다.
markovuksanovic

사실 나는 git svn clone svn.example.com/project/trunk를 사용했다. 이제는 현재 저장소를 잃지 않고 다른 브랜치를 추적하도록 설정하는 방법을 모른다 ...
markovuksanovic

20
svn 리모컨에 접두사를 제공하는 것이 좋습니다. ( 또는 --prefix=svn/수행 할 때 추가 ) 이렇게하면 로컬 분기에 접미사를 추가 할 필요가 없습니다. git-svn initgit-svn clone
jasonkarns 2016 년

여러 가지 지점이있는 경우 다른 지점을 관리하기 전에 "git checkout master"를 수행하는 것을 잊지 마십시오
Eildosa

는 IF show-ignore아웃 오류, 시도git svn show-ignore -i trunk
안티 Haapala
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.