Study/Project Management

형상관리툴 특징 (Perforce, Git, SVN, CVS)

Haayany 2018. 11. 2. 18:19

CVS (Concurrent Version System)

1986년에 개발되고 90년에 출시된 무료 서버-클라이언트 형상관리 시스템.

장점

오랜기간 많은 유저를 가졌던 만큼 안정적이다.

하나의 파일에 대한 동시작업이 가능하다.

Merge, Branch, Tag, Compare 기능을 지원한다.

Unix, Linux, Windows 등 다양한 운영체제를 지원한다.

파일 전체를 저장하는 것이 아니라 변경사항만을 저장함으로 용량을 적게 차지한다.

단점

CVS 저장소의 파일들은 이름을 바꿀 수 없기 때문에, 제거한 뒤 다시 추가해야 한다.

CVS 프로토콜은 디렉토리의 이동이나 이름 변경을 허용하지 않기 때문에 파일을 지우고 다시 추가해야 한다.

아스키 코드를 지원하며, 유니코드는 제한적으로 지원한다.

속도가 상대적으로 느리다.

커밋 실패 시 롤백이 지원되지 않는다. *커밋(commit): 수정한 소스를 저장소에 반영한다는 의미

CVS 디렉토리가 다른 툴에 비해 지저분한 느낌을 준다.

 

SVN (Subversion)

CVS의 단점을 보완하기 위해 2000년에 만들어진 소프트웨어, 중앙관리만을 지원한다.

장점

원자적 커밋을 통해 다른 사용자의 커밋과 엉키지 않으며, 커밋 실패 시 롤백 기능을 지원한다. *원자적 커밋(atomic commit): 파일 단위가 아닌, change set을 커밋의 단위로 합니다.

파일과 디렉토리의 삭제, 이동, 이름 변경, 복사 등을 지원한다.

소스파일 이외에 이진파일도 효율적으로 저장할 수 있다.

디렉토리도 버전 관리를 할 수 있다. 디렉토리 전체를 빠르게 옮기거나 복사할 수 있으며, 리비전 기록도 그대로 유지한다.

저장소의 크기에 상관 없이 일정한 시간 안에 가지치기나 태그를 할 수 있다.

처리 속도가 상대적으로 빠르다.

단점

안정성에 있어 CVS보다 상대적으로 좋지 않다.

.svn 디렉토리로 인해 저장소가 다소 지저분한 느낌을 준다.

잦은 커밋으로 인해 리비전 번호가 크게 증가할 수 있다.

소스코드는 Diff를 통해 Merge가 가능하지만, 이진파일은 어느 한쪽을 버릴 수 밖에 없다.

개별 개발자만의 개발 이력을 가질 수 없다.


Git

리누스 토발즈가 2005년 리눅스 커널의 개발을 위해 만든 형상 관리 시스템.

장점

Repository의 완전한 복사본을 로컬에 저장할 수 있다.

처리 속도가 빠르다.

일시적인 작업에 대한 이력 관리가 쉽다.

Branch merge를 할 경우 리비전을 지정하지 않아도 되므로 편하다.(해당 branch가 언제 생겨났는지 자동적으로 파악된다.)

이미 커밋한 것도 수정이 가능하다.

장소에 구애받지 않고 협업이 가능하다. 로컬에 저장이 가능하기 때문에 offline 작업이 가능하다. (웹 업계)

단점

이전 VCS(Version Control System)과는 다른 동작 방식(개별 로컬 파일을 가질 수 있음)을 갖고 있기 때문에, 첫 사용 시 난해할 수 있다.

대용량 코드 관리에 부적절하다.

GUI 툴이 빈약하다.

한눈에 diff를 보기 어렵다.


Perforce(P4D)

2014년 출시된 형상관리 툴, 코드와 바이너리 파일의 변환을 추적하기 위해 제작되었다.

장점

빠른 속도, 빠른 Merge

히스토리 검색이 편하다.

P4diff가 편리하다.

리비전 넘버링 인터페이스가 편리하다.

큰 리소스 관리에 좋다. 바이너리 파일 처리가 매우 빠르다 (게임 업계)

단점

파일명이 바뀌면 히스토리 추적이 곤란하다.

CLI(Command Line Interface)가 상대적으로 안좋다.

유료

'Study > Project Management' 카테고리의 다른 글

Project Management Knowledge Areas  (0) 2021.11.11
Define Project Management Foundations  (0) 2021.11.10
PM terms  (0) 2021.11.08
PMBOK 6th edition  (0) 2021.10.13