저희 회사는 소스 제어를 위한 사실상의 표준으로 CVS를 사용하고 있습니다. 하지만 많은 사람들이 SVN이 더 낫다고 말하는 것을 많이 들었습니다.
SVN이 더 새롭다는 것은 알지만 그 외에는 그 이점에 대해 잘 알지 못합니다.
제가 찾고 있는 것은 자바/이클립스 개발 환경에서 두 시스템을 간결하고 훌륭하게 비교하여 각각의 장단점을 지적하는 것입니다.
CVS는 파일 단위로만 수정을 추적하는 반면, SVN은 전체 커밋을 새 리비전으로 추적하므로 프로젝트의 이력을 더 쉽게 추적할 수 있습니다. 또한 모든 최신 소스 제어 소프트웨어는 리비전 개념을 사용하므로 CVS에서 마이그레이션하는 것보다 SVN에서 마이그레이션하는 것이 훨씬 쉽습니다.
원자 커밋 문제도 있습니다. 저는 한 번만 경험했지만, CVS에서 두 사람이 함께 커밋하면 서로 충돌하여 일부 데이터가 손실되고 클라이언트가 일관되지 않은 상태가 될 수 있습니다. 이러한 문제는 조기에 발견하면 데이터가 어딘가에 남아 있기 때문에 큰 문제가 되지 않지만 스트레스가 많은 환경에서는 골칫거리가 될 수 있습니다.
마지막으로, 더 이상 CVS를 중심으로 개발된 도구가 많지 않습니다. Git이나 Mercurial과 같은 새롭고 반짝이는 새로운 도구에는 아직 도구가 부족한 것이 사실이지만, SVN은 모든 시스템에서 꽤 많은 애플리케이션 기반을 가지고 있습니다.
수정 2015: 이 답변은 이제 7년이 지났습니다. SVN은 잊어버리고 다른 사람들처럼 Git을 사용하세요!
많은 비교 중 하나입니다:
http://wiki.scummvm.org/index.php/CVS_vs_SVN
이것은 해당 프로젝트에 매우 구체적이지만 일반적으로 많은 부분이 적용됩니다.
프로 전복:
버전 변경/이동 지원(CVS에서는 불가능): 핑골핀, 엔더 기본적으로 디렉토리를 지원합니다: 디렉토리를 제거할 수 있으며 버전이 관리된다: Fingolfin, Ender 파일 속성은 버전이 있으며, 더 이상 <실행 가능한 비트> 지옥이 없습니다: Fingolfin 전체 리비전 번호를 사용하면 빌드 버전 관리 및 회귀 테스트가 훨씬 쉬워집니다: 엔더, 핑골핀
이 제품은 최신 설비 및 그 순간 통합되므로 상당히 낮은 수준의 것 (내 기준으로 초기 연구). I& # 39; d 말하도다 그들은 거기에 대한 가장 적합한 전력 개발자 (그리고 여기 있는; -).
반면 현재 t , # 39 CVS doesn& 무엇이 있습니까? # 39 의 초기 질문 전날에약혼자에게 don&, t really, CVS, 이에 대해 아무런 " 알 수 있는 것이 아니라, 내가 사용하는 그것은됐다 "?
누군가 중간에 csv 로 누구이뇨 스위칭할 SVN (처음에 저희에게는힘과 스위치 우리의 모든 프로젝트를 함께 새로운 프로젝트를 통해 결정한 후 우리는 이전됩니다 cvs2svn svn 만 사용하는) 몇 가지 문제가 있었습니다.
뭐, svn 은 몇 가지 것들로 기분이 좋아요.
이 방법을 검토 및 품질 검사를 svn 알다시안 도가니 조합으로의 는 dmx2 보다 1. 갈등과 병합합니다 보다 효율적으로 관리할 수 2. 3. # 39 의 빠른 속도로 수행하는 데 분명히 It& 체크 아웃, 커밋한, etc. 4. 2 명이 함께 있을 수 있는 핵 문제 = 커밋합니다 커밋하면 CVS 에 서로 충돌, 일부 데이터 및 코드에 기반을 잃고 일관성이 없는 상태일 검토하고 있다.
몇 시간 안에 수행됨 마이그레이션과 cvs2svn 사용하여 쉽게 사용할 수 있습니다.