2011-01-11 9 views
6

git 저장소에서 svn-checkout을 만드는 방법이 있습니까?GIT 저장소에서 svn-checkout

문제는 서버에 git 리포지토리를 저장하고 싶고 git를 정상적으로 사용하고 변경 사항을 가져오고 작업 할 수 있다는 것입니다.

그러나 코드를 변경할 필요가없는 개발자가 있지만 소스 코드의 최신 스냅 샷을 가져 와서 자신의 컴퓨터에 빌드 할 수 있어야합니다. 소위 "개발자"는 SVN을 이미 익숙한 SCM으로 사용하고 싶습니다.

그런 시나리오를 설정하는 방법이 있습니까? 또는 이것이 유일한 방법일까요? SVN 저장소를 사용하고 git-svn을 사용하여 git를 직접 만들고 SVN을 다른 동료에게 사용하려면 어떻게해야합니까?

감사합니다.

+0

이것은 매우 유용 할 것이지만, 슬프게도, 나는 그런 것을 모릅니다. 당신이 언급 한 것처럼 다른 방향으로 나아갈 수있는 유일한 길. 나는 그것을 쓰려면 무엇이 필요한지 궁금합니다. –

답변

-1

답변 해 주셔서 감사합니다. svickDamien! 그들은 둘 다 훌륭하지만, 나는 둘 다 받아 들일 수 없기 때문에, 나는 내 자신의 대답으로 모든 것을 다 잡을 것이다.


그래서, 기본적으로, 하나는 그것에 읽기 전용 SVN 액세스와 자식 저장소를 가질 수있다. 데미안 말했듯이,

은 크론 또는 후 커밋 후크 중, 공식 REPO 자식 하나 만들고, 자동으로 자식 - svn을 사용하여 슬레이브의 svn의 repo에 밀어 넣습니다.

한 저장소의 코드에 읽기 전용 액세스를 얻을 수있는 또 다른 방법은 다운로드 어딘가에 서버에서 사용 가능한 저장되어있는 소스 코드의 최신 스냅 샷 아카이브를하는 것입니다.


일부 사용자는 코드에서 변경할 필요가있는 경우, 유일한 적절한 방법이 그들에 상관없이 SCM을 사용하는 것, 다시 REPO에 커밋하지하는 것입니다 저장합니다.이 경우 변경 한 사용자가 커밋 방법을 모르는 경우 변경 내용을 기꺼이 검토하고 repo에 다시 커밋하는 프로그래머 (소스 코드 책임자)가 있어야합니다.

4

SVN을 사용하여 저장소를 체크 아웃하려면 SVN 저장소가 필요합니다. 그것 없이는 SVN과 git (예 : 개정 번호, 브랜치) 사이에서 잘 해석되지 않는 것들을 추적하는 것이 어려울 것입니다.

하지만 실제로 묻지 않은 것은 저장소처럼 보이지 않습니다. 폴더를 동기화하기 만하면됩니다. 이를 위해 SVN보다 다른 도구가 더 적합 할 것입니다. rsync. 또 다른 가능성은 소스 코드가 포함 된 항상 최신 아카이브를 갖는 것입니다 (예 : Github에서 제공).

4

git-svn을 통해 SVN repo를 사용하면 효과가 있지만, git처럼 다른 사람들이있는 경우 git과 공동 작업하면 얻을 수있는 이점을 잃게됩니다. 그게 내가 SVN이 사실상 표준이고 나는 단지 git의 명령과 더 나은 로그 디스플레이를 선호하는 직장에서 사용하는 것이다. 어쨌든 우리는 대부분 아카이브 도구로서 SVN을 사용합니다 : 브랜치가 없으며, 실제 문서에서 단일 문서로 공동 작업을합니다.

또 다른 해결책은 공식 repo를 git one으로 만들고, cron 또는 post-commit 후크를 사용하여 git-svn을 사용하여 슬레이브 svn repo로 자동 푸시하는 것입니다. 이것은 svn 사용자가 절대 커밋 할 필요가 없다고 말하는 경우 가장 좋은 것으로 보입니다.

관련 문제