2010-04-06 4 views
2

나는 새로운 자식이며 내 문제를 해결할 수 있는지 이해하려고 노력하고있어.svn에서 가져 오기. 원격 자식에 게 커밋

프로젝트에 공개 읽기 전용 svn 저장소가 있습니다. 시간이 지남에 따라 소스에 대한 내 자신의 변경 사항을 만들고 추적하려고합니다. svn repo에서 변경 사항을 가져 오는 동안. 물론 으로 쉽게이 작업을 수행 할 수 있습니다. 나는 결코 단지 dcommit을 수행하지 않는다.

추가 된 문제는 내가 여러 위치에서 작업한다는 것입니다. 따라서이 위치간에 파일을 동기화하려면 원격 저장소를 사용합니다. 이것은 원격 git repo를 사용하여 git으로 쉽게 할 수있는 또 다른 작업입니다.

그러나 함께 넣어 내가 가진 :

  • 지역 자식에 커밋 원격 SVN
  • 에서 원격 자식에
  • 풀/푸시를 가져옵니다.

이 작업은 git에서 적절한 작업입니까? 시간이 지나면 내 자신의 변경/커밋이 svn repo의 업데이트와 인터레이스됩니다. 그렇다면 어떻게 설정해야합니까?

의미, 각 작업 위치에 로컬 svn에서 로컬 git 페치를 직접 분산시켜야합니다. 아니면 내 방식대로 하나의 원격 git repo가 ​​svn 자체를 가져 오도록해야합니까. 여러 지역 git에서 svn의 변경 사항을 쉽게 조정할 수 있도록하려면 즉, 원격 git repo에서 변경된 것처럼 보이게 만듭니다.

내가해야 할 경우 원격 자식 리포 호스트에서만 git-svn을 실행할 수 있습니다.

+0

부록. 이 솔루션은 효과가있었습니다. 나는 원격 위치에서 자식 - svn repo 있습니다. git repo에 내 자신의 변경 사항을 적용 할 수도 있습니다. 하지만 git-svn과 함께 작동하는 '베어'저장소를 만드는 해결책을 찾을 수 없었습니다. 또한 non-bare repo에서 [master/master]가 아닌 [master]로 푸시하려면 repo config를 변경해야했습니다. 그렇지 않으면 당신은 (좋은 이유로) 거부됩니다. – DragonFax

답변

1

,이 같은 설정에 가고 싶어 :

  • 상류 SVN 저장소를 추적하기위한 특별 분기를 사용합니다. 자식 저장소를 호스팅하는 서버가 알려진 분기 (upstream)에서 git-svn을 사용하여 제거 svn을 추적하도록합니다.
  • 해당 원격 저장소에서 당기기
  • 변경 사항 (또는 여러 주제 분기)에 대해 별도의 분기를 사용하십시오.업스트림 분기 변경 사항을 주제 분기에 병합하십시오. 주제 브랜치와 업스트림 브랜치를 언제든지 비교하고 차이점을 확인할 수 있습니다. 주제 브랜치를 공개하지 않으면 리베이스 (rebase)를 사용할 수도 있으므로, 변경 사항은 항상 업스트림 변경 사항의 맨 위에 패치로 적용됩니다. 원격 서버에 git-svn를 실행할 수없는 경우

나는 꽤 유사 할 수 있지만 svn의 변화를 당겨 원격 서버에있는 것은 당신이 그것에 대해 걱정할 필요가 없습니다만큼 좋네요 것입니다.

1

힘내 기는 아주 쉽게 이것을 할 수 있습니다.

이 시도 :

원격 SVN에서 가져 오는을 담당
git svn clone svn-url 

. 그런 다음 등 가지로 원하는대로 자식을 사용하고 난 그래도 별도의 저장소를 사용하는 경향 등 개발 지점에 변경 내용을 병합, 마스터 당겨 SVN 자식을 계속이 수행 할 수 있습니다

git remote add svn /path/to/git/repo/cloned/from/svn 

을 그리고에서 끌어 내 개발 저장소에 svn 복제. 그것은 단지 개인적인 취향이지만, 내 "가져 오기"저장소를 깨끗하게 유지하고 개발 저장소는 상류 코드 기반을 생각합니다. 나는 다른 git 저장소에서이 방법으로도 끌어낼 수있다. 개인적으로 svn에 다시 커밋하지 않기 때문에 git-svn 저장소 맨 위에 그렇게하는 것에 대해서는 확신 할 수 없습니다. 아직. 다음과 같이 할 수 있습니다

git remote add server remote-repo 
git push server {branch} 

정상입니다. 당신이 당신의 원격 서버에 git-svn를 실행할 수있는 경우

관련 문제