CVS란
CVS(Concurrent Versions System)는 1980년대 후반부터 사용되어온 VCS 중 하나였고, CVS는 클라이언트-서버 구조로 이루어져 있음. 클라이언트는 서버로부터 완전한 복사본을 얻을 수 있음.
그러나 CVS는 분산형 버전 관리 시스템이 아닌 중앙 집중형 버전 관리 시스템이기 때문에 대규모 프로젝트에서는 한계가 있었음.
SVN의 특징
SVN은 위에서 간단하게 설명한 CVS의 한계를 극복하고자 만들어졌다고 함. SVN(Subversion)은 2000년대 초에 개발되어, CVS를 대체하기 위해 만들어진 VCS임.
SVN은 CVS와 비슷한 기능을 제공하면서도, 복잡한 코드 변경을 처리할 수 있는 새로운 방식을 도입하여 대규모 프로젝트에서 더욱 효과적으로 사용될 수 있었음.
방금 말한 새로운 방식인 "Changeset" 방식에 대해 간단하게 알아보자면, CVS는 중앙 집중형 VCS라 개별 파일 단위로 변경을 관리하지만, SVN은 분산형 VCS이기 때문에 Changeset 단위로 관리함. SVN은 이 Changeset으로 묶어서 커밋이 가능하고 전체 프로젝트에 일괄적으로 적용됨 !!
이 Changeset을 도입한 후로 여러 개발자가 동시에 작업할 때의 충돌을 최소화하고, 복잡한 코드의 변경을 추적하고, 롤백할 수 있게 되었음...!!! 개꿀이네
SVN의 역사
2004년에는 Subversion 1.0 버전이 출시되었으며, 이후로도 계속해서 버전이 업그레이드되면서 현재에 이르러도 많은 사용자들이 SVN을 사용하고 있음. SVN은 Apache Software Foundation에서 개발되었으며, 무료로 사용할 수 있기 때문에 많은 개발자들이 이용하고 있음.
또 내 개인적인 생각인데 대부분의 기업이 Git으로 마이그레이션을 하지 않는 이상 아직까지 SVN을 사용하고 있지 않을까... 함.
대부분 뭐 엊그제 뿅하고 생긴 기업이 아닐테니까,,??