svn사용자의 git 사용 후기.

저는 cvs, svn, git 을 사용했고 이중 많이 사용한건 svn 입니다.

svn과 비교한 장단점.

- git 장점.

소스 - 로컬저장소 - 원격저장소로 나뉘어있기 때문에 원격저장소를 여러개 두어 여러군데 백업이 가능하다. 

작업 중간에는 로컬저장소에만 올려 다른 팀원들에게 피해를 주지 않기 때문에 작업 중간에도 계속해서 소스 백업을 할수 있다. (아직도 회사에서 svn을 사용한다면 tortoisegit의 svn 관련기능을 사용하자. )

이게 가장 큰데 github, AWS CodeCommit, google Cloud Source Repositories, ms azure devops 등 소스관리는 git이 대세다. 지원하는 개발 프로그램, 유틸도 git에 맞춰 나오기 때문에 선택이 아니라 필수가 되어가고 있다.



- git 단점.

단일 바이너리 서버가 아니라 ssh나 웹서버 등을 조합해 사용하기 때문에 서버세팅이 번거롭다.

큰 바이너리 파일은 부담 스럽다. 지원하는 모듈을 설치하면 되지만 기본 모듈로 있어야 유지보수에 용이하다.

소스 - 로컬저장소 - 원격저장소 로 나눠지면서 복잡도가 증가하면서 용어가 중구난방이라 헤매기 쉽상이다. 
예를 들어 소스를 서버에 올리는 기능이 커밑, 푸쉬로 나눠져 있다. 커밑to로컬, 커밑to원격 같이  동작의 이름에 통일성을 주는게 훨씬더 직관적이라 생각된다. 
아래 그림에 동작별로 정리되어 있다.


저장소 내의 폴더 하나만 커밑, 업데이트 할수 없다. 
svn은 하위 폴더 하나만 부분적으로 커밑, 업데이트 가능하기 때문에 저장소 하나에 프로젝트 여러개를 모아 놓고 사용했지만 git에서는 하나의 저장소에 하나의 프로젝트가 기본인거 같다.
이래서 저장소가 너무 여러개 일때 사용하는 서브모듈이라는 것도 있지만 바로가기 링크에 불과해 편의성이 떨어진다. 


- 종합.

svn 사용자 입장에서 로컬저장소 - 원격저장소 로 나누어 개발 중간에도 계속해서 소스백업을 할수 있다는 장점이 크다. 하지만 이 구조를 구현하기 위해 많은걸 희생했기 때문에 나머지는 퇴보의 느낌이 든다. 
그럼에도 불구하고 대세는 따를수 밖에 없다.
아니면 입맛에 맞는 것을 자체개발해서 쓰던지....

댓글

이 블로그의 인기 게시물

파이썬 vscode에서 자동 코드 정렬. Formatter.

Unity3D git 저장소에 올릴때 필요없는 파일 제외하기. gitignore

플러터(flutter) 개발 참고 사이트들.