2014-04-25 3 views
1

저는 오랫동안 SVN 저장소에서 호스팅되었으며 현재 GitHub로 전환 중입니다.git-svn은 항상 고유 한 해시를 생성합니다.

현재 저는 Git에서 주로 일하는 유일한 개발자이고, 다른 사람들은 SVN에서 일하고 있습니다. 내 워크 플로우는 다음과 같이 간단합니다 : gitsvn clone, git commit, git-svn dcommit, git push. 그러나 누군가 다른 사람들도 힘내에서 일하면, 당신이 그것을 실행할 때마다 'git svn clone'이 유일한 해시를 생성하기 때문에, 우리는 GitHub으로 갈 때 갈등을 겪을 것입니다. 그래서 두 개의 다른 클론의 역사는 완전히 다릅니다.

git-svn이 동일한 SVN 버전에 대해 동일한 해시를 생성하도록 강제 할 수 있습니까? 아니면 Git과 SVN에서 동시에 동일한 코드 기반으로 작업 할 수있는 다른 워크 플로우 체계가 있습니까?

답변

1

git-svn이 동일한 SVN 수정에 대해 동일한 해시를 생성하도록 강제 할 수 있습니까?

예, 그렇습니다. 너는 그것을 강요 할 필요조차 없다. 진심으로 :동일한 SVN 저장소에 동일한 매개 변수를 여러 번 사용하면 같은 해시 값을 얻게됩니다 (방금 테스트했습니다).

다른 해시를 얻는다면 복제 도중 매개 변수가 달라야합니다 (경로 매개 변수, SVN repo URL ...). 또는 다른 버전의 git-svn을 사용하고있을 수 있습니다.

내 워크 플로우는 다음과 같이 간단하다 : gitsvn 복제, 자식 커밋, gitsvn dcommit, 자식 푸시 [...] 또는 힘내에서 동일한 코드 기반에서 작동 할 수 있도록 다른 워크 플로우 방식이있다 및 SVN 동시에?

"git-svn dcommit, git push": 이것이 문제입니다.

일반적으로 Git과 SVN을 동시에 사용하면 즉시 사용할 수 있습니다. 주의 사항 : 다른 git svn 클론 사이를 직접 밀거나 당겨서는 안됩니다. 따라서 git push을 사용하면 문제가 발생할 가능성이 큽니다. manpage이 (강조 광산) 같이 설명 : 간단하게하기 위해서

및 서브 버전과 상호, 그것은 모든 자식 svn의 사용자가 가져 오기 및 SVN 서버에서 직접 을 dcommit, 복제하는 것이 좋습니다이며, 피하기 모든 git clone/pull/merge/git 저장소와 브랜치간에 작업을 푸시. git 브랜치와 사용자간에 코드를 교환하는 방법으로 을 사용하는 것은 형식 패치와 git am 또는 SVN 저장소에 'dcommit'하는 것입니다.

당신이 그 충고를 따르면, 괜찮을 것입니다.

+0

설명 해 주셔서 감사합니다. 그러면 다른 해시를 얻는 이유를 더 자세히 조사하겠습니다. 워크 플로우와 관련하여, 아이디어는 다른 사용자가 전환하는 동안 GitHub에서 프로젝트의 코드에 액세스 할 수 있도록하는 것입니다. 따라서 나는 거기에 변화를 밀어 넣어야한다. 다른 모든 것은 SVN에서 직접 커밋 또는 git dcommit을 통해 수행됩니다. –