2010-07-06 2 views
5

git과 함께 사용하려는 svn 저장소 (중요한 경우 TLB 구조 없음)가 있습니다. git-svn 복제본을 수행하고 git repo에서 변경 한 내용을 처리하고 완료 될 때마다 svn repo에 다시 커밋 할 수 있습니다. 이 시점까지는 분명합니다.여러 개발자와 git 및 svn 사용

이 워크 플로 모델을 여러 개발자에게 확장하는 방법을 모르겠습니다. 내 dev 팀이 하나의 git repo (svn repo에서 복제 한 것)에서 작업 할 수 있어야합니다.이 작업은 우리 모두에게 정상적인 git repo처럼 동작해야합니다. 어떤 시점에서 모든 개발자는 svn repo에 다시 커밋 할 수 있어야합니다. 이것이 가능한가? 감사.

답변

1

우리는 같은 문제가 있었고 우리는 그것을 할 방법을 찾지 못했기 때문에 전체 자식으로 전환합니다. 하나의 Repo가 svn과 통신하는 경우 문제가 해결되지만 그렇지 않으면 지저분 해집니다. 무슨 일이 자식 - svn 지점은 자신의 삶을 가지고


- svn에서 git1 및 git2를 repo하려면 만들기.
- 자식 하나의 변화를 확인하고 svn을 위해 dcommit
-

당신이 git2에서 당겨하려고, 당신이 가지고 ... 자식의 svn의 REBASE을하고 무슨 일이 일어나고 있는지보고, 그것은 git2을 int로 끌어 종류의 svn 하나에서 시작하는 새로운 지점을 만들지 만, 그것을 추적하지 않습니다. 그래서 git2는 기본적으로 svn 하나와 git1을 2 분기합니다. 그래서 git2에서 svn으로 무엇이든 넣을 수 있기 전에 당신은 svn을 git1 브랜치와 svn 브랜치를 병합해야합니다 (동일하다하더라도). (이전에 해본 적이 있고 아마도 해결책이 있었기 때문에 틀렸을 수도 있습니다)

어쨌든, 우리는 'git-svn'에서 'git' 우리 모두가 svn에 자신의 일을 dcommit하기 전에 중앙 git 저장소를 만들었습니다. 나는 그때 새로운 자식 repo에 그들을 넣어 svn에서 새로운 물건을 선택했다 그리고 정말 큰 혼란이었다.

그러므로 git 만 사용하거나 svn에 연결된 Repo를 하나만 사용하십시오. 나뿐만 아니라이에서 찾고

+0

이것은 내 경험에서 가장 문제가없는 접근 방법입니다. –

1

이 방법을 추천의 나하는 다음 자식에 SVN에서 walko 지점 같은 다른 SVN 지점을 추적하는 SVN 저장소와 특별한 지점 이름과 동기화를위한

그런 다음 동작의 방법은

  • 모든 디자이너 자식 - svn을 복제하여 SVN 저장소에서 동기화 할 수 있습니다 ... 마스터 지점-svn을 이름을 사용
  • 모든 디자이너도 자식 저장소에 동기를 가지고 있지만,
  • 모든 디자이너들이 주로 주제 지점처럼, 개발 협력을 자식 저장소를 사용하는 SVN에 대한 브랜치 이름 위에 유지
  • 토픽 브랜치가 좋을 때 모든 디자이너가 마스터 브랜치로 리베이스 할 수 있으며이 디자이너는 svn 리포지토리에 dcommit해야하고 이후에 ( git-svn-id을 얻습니다) git 저장소로 푸시됩니다.
  • 다음 자식 저장소는 항상 비 svn을 분기에 협력 할 마스터 분기에 svn의 환매 특약으로

요약

  • 사용 자식 저장소를 동기화한다 (SVN 트리거를 설정하는 경우이 작업이 자동으로 수행 할 수 있습니다) (같은 마스터)
  • 항상 svn의 REPO와 자식의 repo (마스터) 동기화를 유지하는 비 svn을 지점에서 SVN 저장소로 다시 리베이스

http://larrycaiyu.com/blog/2010/07/10/svn-git-integration-1/