git vs Subversion-장단점 [닫기]


11

나는 수년 동안 SVN을 사용 해 왔으며 그것에 대해 완전히 행복하다고 말할 수는 없습니다. 며칠 전 내 파트너는 git이 "성능이 뛰어나고 병합 및 분기가 더 쉽다"는 말을하도록 요청했습니다.

나는 git vs. SVN 비교 기사를 읽었으며 사람들이 두 버전 제어 시스템을 사용하여 장단점을 요약 할 수 있다면 기쁠 것입니다.

이제 한 시스템에서 다른 시스템으로 전환하여 주관적인 의견을 듣는 사람들을 찾고 있습니다.

SVN이 작동하는 방식이 마음에 들었습니다. 사람들이 체크 아웃 할 수있는 중앙 저장소가 하나 있고 라이브 개발 사본과 라이브 프로덕션 사본을 배포 할 수 있다는 것을 알고 있지만 때로는 골치 아픈 충돌이나 기타 오류가 있습니다. 파일 히스토리를 확인하거나 조사해야 할 때마다 처리해야 할 네트워크 대기 시간이 있습니다.

다른 한편으로, 분산 플랫폼이 두통처럼 들린다면 어떻게 액세스를 제어 할 수 있습니까? 푸시하고 업데이트 할 중앙 저장소가 있습니까?

이 문제에 대해 더 많은 정보를 알려 주셔서 감사합니다.

답변:


15

시스템 관리자의 인식 또는 프로그래머의 두 도구를 비교하려고합니까? 프로그래머 관점에서 이것을보고 있다면 아마도 이것을 stackoverflow에 요청해야합니다. 또는 더 나은 것은 아마도 " git svn "에 대해 이미 요청 된 것을 살펴보아야 할 것입니다 .

git과 svn에 관한 것은 그것이 제안 또는 제안이 아니라는 것입니다. SVN 저장소를 실행할 수 있으며 개발자는 git이 특정 경우에 더 나은 도구라고 생각되면 git-svn 을 사용 하여 상호 작용할 수 있습니다 .


2

실제로 git을 통해 서브 버전을 만드는 전문가는 없습니다. git이 배포되는 동안 모든 사람은 원격 추적 분기를 사용하여 중앙 저장소에서 작업 할 수 있습니다. git은 더 빠르고 유연하며 병합은 실제로 작동합니다. 또한 Subversion을 사용하여 오프라인으로 실제로 작업 할 수 있고,없는 경우 변경 사항을 커밋 할 수 없습니다. git의 개별 커밋을 사용하여 svn의 리포지토리 상태를 나타내는 단일 커밋 ID를 사용하는 것보다 더 쉽게 작업 할 수 있습니다.

액세스는 git 서버의 사용자 / 그룹 계정 (권한을 적절하게 설정하려면 'git init --bare --shared'로 오리진 저장소를 초기화해야 함) 또는 ssh 키를 사용하여 제어됩니다. 타사 애드온 인 'gitosis'를 사용하여 매우 세부적인 액세스 제어를 설정할 수 있습니다.

svn에 익숙 할 때 git 작업에 익숙해지는 데 약간의 시간이 걸리지 만 (우리는 방금 내 사무실 에서이 작업을 수행했습니다) git은 훨씬 강력합니다.

훌륭한 연습이 필요한 경우 http://progit.org를 확인하십시오 . 오픈 소스 북의 전체 온라인 사본입니다.


svn은 git보다 큰 파일을 처리 할 수 ​​있습니다
Joshua

git이 최대 파일 크기를 가지고 있다는 것을 알지 못했습니다. 한계는 무엇입니까?
Aaron Brown

2
대부분 Git이 모든 작업 사본과 함께 역사를 가지고 있기 때문에 크게 편집 된 파일은 많은 공간을 차지합니다. 큰 파일이 본질적으로 변하지 않는다면 괜찮습니다
Phil Miller

나는 여호수아의 말이 오도되었다고 말할 것입니다. 체크 아웃 된 파일은 SVN과 git 모두 동일한 크기입니다. git은 repo 정보의 복사본을 로컬에 보관하기 때문에 파일을 편집 할 때 모든 파일과 repo 기록에 필요한 총 디스크 공간이 늘어나지 만 SVN의 경우이 공간은 고정되어 있습니다 (repo 기록이 아니기 때문에). 로컬에 저장 됨).
Walter

1

우리 팀에서는 제어 버전 시스템을 svn에서 git로 변경하는 중입니다. Git은 학습 과정이 약간 더 어려워서 익숙해지기 시작했고 개발자에게 사용법을 가르쳐주었습니다. 분산 제어 버전 시스템의 모든 이점 (여러 가지, 중앙 저장소 없음, 속도 등)을 알아야합니다.

당신처럼, 우리는 사이트를 배포하는 시스템을 가지고 있었기 때문에 개발자의 머신에서 변경 사항을 가져오고 푸시하는 git 중앙 서버와 같은 것을 유지했습니다. 우리 사이트는이 "중앙 서버"에서 변경 사항을 가져 오며 나머지 배포 프로세스는 svn을 사용하는 프로세스와 유사합니다.

svn과 git 리포지토리를 섞지 않고 마이너 사이트를 마이그레이션하고 새로운 버전과 같은 메인 사이트를 위해 새로운 git 리포지토리를 만들려고했습니다. 액세스는 ssh 키로 관리됩니다. 또한 우리는 웹 인터페이스로 gitweb을 사용합니다 (우리의 svn 시스템은 http 기반입니다)

그것은 효과가 있습니다. 그것은 하루 하루가 바뀌는 것이 아니며 개발자 가이 변화를 성가신 것으로 생각하지 않고 결국 우리 자신의 시스템을 향상시킬 도구를 배우는 새로운 기술을 시도하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.