티스토리 뷰

Dev

SVN vs GIT

thingsu 2020. 9. 14. 23:05

이제와서 svn을 고민하는 사람은 없고 git이 최고존엄이지만, svn을 먼저 접했었기 때문에 어떤 점에서 나은지 분석해보았다. 한때는 어느것이 어떤 점에서 더 나은지 비교하는 글들도 많았던 것 같은데, 이제와서는 cvs → svn → git의 흐름으로 넘어가는 것 같다.


https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6756e95b-e6c5-45a0-8d0a-0c4ce003d889/Untitled.png

 

 

svn

  1. server-clien 타입
  2. 2000년에 만들어짐
  3. trunk / branch로 구분
  4. 커밋 = 중앙저장소에 개발분 공개
  5. author별 버전 히스토리를 가질 수 없다. (로컬 히스토리에선 버전관리가 되지 않음)
  6. 새로운 브랜치 = 새로운 디렉토리

git

  1. author별 커밋 히스토리를 가질 수 있다.
  2. 커밋이 서버에 영향을 미치지 않음
  3. author가 원하는 지점에서 커밋 히스토리를 서버에 보낼 수 있음
  4. 관리자가 원하는 순간에 author의 커밋 히스토리를 가져올 수 있음
  5. 로컬저장소를 지원하므로 오프라인 개발이 가능
  6. svn보다 명령어가 많고 다양함
  7. 중앙서버가 날아가도 로컬 레포를 중앙으로 역-clone할 수 있음
  8. 파일을 파일,디렉토리가 아닌 스냅샷으로 관리
  9. 성능차이는 최대 300배 이상(커밋, 업데이트의 경우 3~4배)

git은 위 9가지 정도의 특장점이 있다.

따지고 보면 같은 맥락인데, author는 개인 개발자(로컬 개발)라고 생각하면 된다.

로컬 레포지토리를 갖기 때문에 1, 2, 3, 4, 5, 7이 가능한 것으로 이해하면 쉽다.

 

svn에서 넘어온 입장에서는 개인 레포지토리(로컬 레포지토리)와 함께 은근히 꿀기능인 것이 8번이다.

svn의 경우 새로운 브랜치를 생성하면 새로운 디렉토리를 생성하는데 어느정도 규모 있는 프로젝트에서는 용량 차지와 재빌드라는 비용이 발생하였고, 브랜치를 전환하는 리소스도 꽤 잡아먹었다.

'Dev' 카테고리의 다른 글

iTerm2에서 한글깨짐 해결방법  (0) 2020.09.22
CocoaPods 설치 및 삭제  (1) 2019.06.06
pyenv python 설치시 zlib 에러(10.14 모하비)  (0) 2019.04.21
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday