2012-05-07 3 views
2

나는 버전 관리 시스템을 처음 사용하고 어느 것을 사용할 지 결정하려고합니다. 많은 정보가 있지만 어쩌면 누군가 전문가가 이미 다음 질문에 답함으로써 나를 도울 수 있습니다.SVN이이 분기 모델을 할 수 있습니까?

http://nvie.com/posts/a-successful-git-branching-model/

내가 이론적으로 SVN과 마찬가지로 쉽게 실현 할 수 : 나는 매우 밀접하게 내 요구 사항과 유사한 버전/분기 모델을 발견했습니다? 각기 다른 여러 분기로 병합되는 Hotfix 및 Bugfix 분기처럼? 그리고 왜 "병합"은 Git을 사용하여 더 쉽게 할 수 있습니까? 당신이 제공 한 링크에서

+0

누군가 SVN에서 분기를 수행하는 글을 작성했습니다. 그것은 분기 모델에 대한 좋은 SVN 관점을 제공합니다 : http://nedbatchelder.com/text/quicksvnbranch.html –

답변

5

연결 한 워크 플로는 많은 StackOverflow 답변에서 권장됩니다. 그러나 일반적으로 말하자면 "좋은 코드"와 "개발 코드"를 따로 보관하는 것이 가장 좋습니다. masterdevelopment 가지입니다. 또한 지점을 development 분기로 병합 할 준비가 될 때까지 기능을 분리하여 보관하십시오. 즉, featureshotfix 가지입니다.

워크 플로우 또는 매우 유사한 SVN이 전적으로 가능하다는 의심의 여지가 없습니다. SVN Branches을 사용하십시오.

개정 관리 시스템은 whole bunch이고, Nvie Git 워크 플로우는 매우 일반적입니다. 일반적인 워크 플로우는 대부분의 개정 관리 시스템에서 활용 될 수 있습니다.

이론적으로 이것을 SVN에서 쉽게 구현할 수 있습니까? 각기 다른 여러 분기로 병합되는 Hotfix 및 Bugfix 분기처럼?

개인적으로 나는 SVN에서의 분기가 힘내만큼 쉽지 않다고 생각합니다. Linus Torvalds agrees - 그래서 Git은 브랜칭에 대한 아이디어를 중심으로 디자인했습니다.

그리고 왜 "병합"은 Git을 사용하면 더 쉬울 거라고 생각합니까?

힘내는 분기 개념을 중심으로 설계되었습니다. 브랜치 만들기, 브랜치 만들기, 두 브랜치 병합, 세 브랜치 병합, 브랜치 병합, 브랜치 병합 SVN은 지점 중심이 아니며 내 (제한적) SVN 환경에서 두 지점을 병합하는 것이 항상 즐겁지는 않습니다.

방금 ​​버전 제어 시스템을 시작했다면 Git을 권하고 싶습니다. Git과 SVN을 적절하게 비교하려면 this link을 확인하십시오. 그러나 Git은 조금은 두뇌가 약하다. 특히 SVN이 처음이라면 개념적으로 SVN을 이해하기가 훨씬 쉽다. 나는 the Pro Git book이 매우 유용하다는 것을 알았다.

2

:


내가 항상 조금 무서운 생각되었습니다 분기/병합, 온 고전 CVS/Subversion을 세계에서 ("병합 충돌 조심, 그들은 당신을 물 듭니다! ").

하지만 Git을 사용하면 이러한 작업은 매우 저렴하고 간단하며 은 매일 작업 흐름의 핵심 부분 중 하나로 간주됩니다.


나는 (I 실제 작업 GIT 경험이없는)까지 SVN에 관한 한 그 진술에 가입. SVN 병합에서 이며 시간이 많이 걸리고 솔직히 무서운 것입니다. 당신은 가볍게 가지 않습니다. 그래서, 제 생각에는 대답은 "아니오"입니다. SVN을 사용하지 마십시오. 많은 분기와 병합을해야한다는 것을 미리 알고 있다면 말입니다.

1

이론적으로 - 예, SVN이 인식 할 수 있습니다. 하지만 SVN에는 병합 및 분기 도구가 부족하고 부족합니다. 따라서 SVN과의 병합/분기는 약간 불편하고 무서운 것입니다 (주된 문제 - 복잡한 트리 및 기타 충돌).

GIT는 병합 지점의 마스터입니다. 매우 어려운 갈등을 해결할 수 있습니다. 또한 모든 지점 버전을 쉽게 추적 할 수 있습니다.

SVN과 GIT 사이

주요 차이점 :

가 살펴 비교를 이해하려면

  • SVN은 중앙 집중식 버전 관리입니다 (CVCS)
  • GIT가 분산 버전 관리입니다 (DVCS) 이 article

+0

왜 힘내 합병이 더 쉬운 주된 이유가 있습니까? 같은 문제를 더 잘 해결하거나 개념적으로 차이가있는 도구를 사용할 수 있습니까? 병합이 더 쉬운 이유를 동료들에게 어떻게 설명 할 수 있습니까? – Gerenuk

+0

크리에이터에 따르면 브랜치는 Git의 첫 번째 개념입니다. 그것은 Git 브랜치가 전체 역사를 가지고 있다는 것을 의미합니다. Git 브랜치는 Subversion 및 Git보다 간단하고 리소스가 적기 때문에 브랜치 및 병합 이벤트를보다 잘 감사 할 수 있습니다. 여기에 동료에 대한 더 많은 논쟁이 있습니다 : https://git.wiki.kernel.org/index.php/GitSvnComparsion –

+0

답을 얻은 답이 도움이되었으며 동료를 설득하는 데 도움이 되었습니까? 예인 경우 대답을 선택하십시오. –

0

Subversion은 체리 피킹 커밋의 경우 중요한 특정 개정판의 특정 분기/트렁크가 (svn : mergeinfo에 의해) 분기에 병합되는지 항상 알 수 있다는 장점이 있습니다. Git은 잘 작동한다고 알려진 병합 도구를 제공합니다.

SVN 저장소에 SubGit (subgit.com)을 설치할 수 있으며 두 가지 방법 모두 장점이 있습니다. 설치 후 SubGit은 SVN 저장소에 연결된 Git 저장소를 생성하여 해당 Git 저장소에 대한 모든 푸시가 SVN으로 변환되고 그 반대의 경우도 마찬가지입니다. 변환은 즉석에서 수행됩니다.

관련 문제