SVN사용법과 git차이점

SVN사용법과 git차이점

형상관리 도구의 종류

  • Client/Server 타입 : Subversion(SVN), CVS, Perforce, ClearCase, TFS
  • 분산저장소 타입 : Git, Mercurial, Bitkeeper, SVK, Darcs
  • Folder 공유 타입 : RCS, SCCS




SVN vs GIT

비교 SVN Git
시스템 Centeralized Version Control System; CVCS; 중앙집중 버전관리 Distributed Version Control System; DVCS; 분산 버전관리가능
정의 프로젝트의 모든 파일 및 히스토리는 중앙 서버에 저장됩니다. 개발자는 중앙 서버에서 파일을 받아와서 작업하고, 변경 사항을 중앙 서버에 커밋 각 개발자는 전체 저장소의 복사본을 로컬에 가지고 있습니다. 이로 인해 중앙 서버의 의존성이 줄어들고 오프라인 작업이 가능
각 개발자만의 version history 불가능 가능
한계 commit한 내용에 실수가 있을 시에 서버에(다른 개발자에게) 바로 영향을 미치게 되고 만약 중앙서버에 문제가 생기면 협업 불가능 다양한 기능이 있기 때문에 SVN보다 진입장벽이 높음




SVN 사용사례

  1. 작은 팀이 협업하는 경우
  2. 중앙 집중식 통제 및 보안이 필요한 경우
  3. 레거시 시스템과의 통합이 필요한 경우|




Git 사용사례

  1. 대규모 프로젝트 또는 분산된 팀이 협업하는 경우
  2. 빠른 브랜치 및 머지가 필요한 경우
  3. 유연한 작업 및 실험을 위한 필요성이 있는 경우

둘 중 어느 것이 무조건 더 좋다는 건 없는 것 같다. 팀에 맞게 사용하면 된다.




SVN GUI 사용법

  • 회색 화살표 ▶ : local에서만 수정하고, 서버에서는 수정되지 않은 파일 Commit하면 된다.
  • 파란 화살표 ◀ : local에서는 수정되지 않고, 서버에서만 수정된 파일 Update하면 된다.
  • 빨간 화살표 ◀-▶ : local에서도 수정되었고, 서버에서도 수정된 파일 충돌 부분을 확인하면서 수정한다.




용어

  • Commit : 서버로 나의 로컬 소스 코드를 올린다.
    • git와 다른 점 : git같은 경우, 팀원들이 각각의 branch를 따로 만들어 로컬 소스를 서버에서 관리할 수 있었지만 SVN은 main브랜치 하나만 있다.
  • Update : 서버 소스코드를 나의 로컬로 다운받는다.
  • Override and Commit… : 서버를 무시하고 로컬에 있는 파일을 서버에 덮어 쓴다.
  • Override and Update… : 로컬을 무시하고 서버에 있는 파일을 내 로컬로 덮어 쓴다.




참고