초기 리눅스 개발 시,
1991~2002 : 압축 파일로 버전 관리
2002 : BitKeeper라는 DVCS를 도입
->그러나 문제가 생기게 되면서 직접 개발을 하게 됨
2005 : 무료 DVCS "Git"탄생
2008 : 세계 최대 오픈소스 호스팅 "Github"탄생
2014 : Git 2.0 릴리즈
SVN : 파일 기준으로 파일의 변화를 관리
version1에 파일 A,B,C가 있다고 할 때,
version2에 저장되는 것은 version1과 비교해서 변경된 파일들의 변경된 값만 저장됨(A의 변경내용, C의 변경내용)
Git : 시간 기준으로 프로젝트 스냅샷을 관리
version1에 파일 A,B,C가 있다고 할 때,
version2에 저장되는 것은 변경된 파일 A,C의 스냅샷과 변경되지 않은 파일B의 스냅샷이 저장됨
CVCS(중앙집중식 버전 관리)와 DVCS(분산 버전 관리)
- CVCS(중앙집중식 버전 관리)
- 예시 : SVN
- 구조
- 클라이언트가 중앙서버로부터 파일을 받아서 사용
- 특징 : 중앙서버의 하드에 문제가 생겨서 자료가 삭제 되었다면 복구할 방법이 없다.
- DVCS(분산 버전 관리)
- 예시 : Git
- 구조
- 클라이언트가 마지막 스냅샷을 받아오는 것이 아니라 저장소 전부를 복제
- 서버에 문제가 생기면 아무 클라이언트의 복제물로 서버를 복원할 수 있다.
출처
1. 사내세미나 내용
2. 형상관리의 종류