2010-01-22 2 views
1

OSV에서 Versions을 사용하여 Subversion의 모든 코드를 관리합니다. Git이 Versions와 같은 훌륭한 GUI 애플리케이션을 가질 때까지 현재 워크 플로우를 크게 변경하는 데 관심이 없다.SVN을 로컬에서 사용하고 변경 사항을 원격 Git 서버에 푸시하는 방법은 무엇입니까?

제 고객 중 한 명이 내 코드를 개인 GitHub 저장소로 푸시하려고합니다. Git을 로컬에서 실행하고 원격 Subversion 서버로 푸시하는 것에 관한 많은 질문과 기사가 있지만 반대 시나리오에 대한 제안을 찾을 수없는 것 같습니다.

이 명확하게하기 위해, 내가하고 싶은 것입니다 :

내 코드 (중앙 저장소가 원격 서버에 실제로,하지만 난 그게하지 않습니다 바라고 있어요 로컬 서브 체크 아웃에서 관리 유지
  1. 여기에 문제가있다)
  2. 내가 클라이언트에 전달할 때마다 "git update-github-with-local-svn-changes"와 같은 명령을 실행하고 싶다
  3. 다른 사람이 GitHub), "git update-local-svn-with-github-changes"와 같은 명령을 실행하고 싶습니다.

답변

1

내가 생각할 수있는 가장 좋은 대답은 git-svn을 사용하여 Subversion 서버의 사본을 만든 다음 생성 된 분기를 github으로 푸시하는 것입니다. github에서 변경 사항을 만들었 으면, 그것을 아래로 당겨 Subversion에서 복제 된 지점과 병합하고 Subversion에 적용하십시오. 이것은 당신의 (주인) Subversion 서버의 다운 스트림으로 사물의 전체 github 측면을 다루고 있으며, 그것을 관리하기 위해 이미 모든 제안을 사용할 수 있어야합니다.

이미 github에 코드가있는 경우 리베이스로 약간의 춤을해야 할 수도 있습니다. 기본 아이디어는 최신 소스를 가져 와서 Subversion으로 가져오고 Subversion을 사용하여 git-svn을 사용 한 다음 최신 git-svn 커밋을 github에서 분기 맨 위에 리베이스하는 것입니다. git-svn 메타 데이터가 포함 된 새로운 커밋을 가진 git 히스토리가있다. 나는 이것을 시도하지 않았다.

+0

감사합니다, Andrew. 이 프로젝트를 위해 새로운 GitHub 저장소를 시작할 수 있으므로 두 번째 부분은 문제가되지 않습니다. 최신 Subversion 변경 사항으로 로컬 Git 저장소를 업데이트하려면 "git-svn rebase"명령을 사용해야한다고 생각합니까? – davidcann

+0

고마워, 앤드류. 결국 좋은 해결책이되었습니다. – davidcann

+0

아마도 가장 쉬운 방법 일 것입니다. 대신에'git svn fetch'를 사용하여 병합이나 리베이스를 처리 할 수 ​​있습니다. –

0

충분히 git-svn이라고 불리는 git-to-svn 브릿지가있어서 Git을 로컬에서 사용하고 원격 SVN 서버로 밀어 넣을 수 있습니다. 그러나 나는 반대 방향을지지하는 도구를 알지 못합니다. 나는이 질문에 대한 답에서 하나를 배울 것이라고 확신한다!

+0

네, 정확히 말해서 git-svn에 대한 모든 이야기는 훌륭하지만 반대 방향에 대한 이야기는 빠져 나가는 것 같습니다. – davidcann

0

GitX을 사용해 보셨습니까? 자식에 대한 GUI가 충분히 좋을 수도 있습니다. 단지 git로 바로 갈 수 있습니다.

+0

고맙습니다. Geoff, 저는 GitX를 사용해 봤는데 실제로 적합하지 않았습니다. – davidcann

관련 문제