2012-06-12 2 views

답변

0

이 경우에는 cvs를 svn으로 변환하고 하드 드라이브의 파일 크기를 찾았습니다. (당시 개인 랩톱에있었습니다.)하지만 cvs보다 svn에서 훨씬 작았지만 일부 압축 적용된 내가 몰라,하지만 웹상의 모든 svn 실제로 cvs 것보다 더 큰 것이라고 말했다.

그래서 나는 2가 어떻게 설정되는지에 대해 약간 열어 본다고 생각합니다.

3

서버의 Subversion 저장소는 CVS와 비슷한 양의 디스크 공간을 사용합니다. 더 많은 것이 될 것 같습니다. 그러나 클라이언트에서 Subversion은 (적어도 이전 버전에서는) 상당히 많은 디스크 공간을 사용했습니다. Subversion 클라이언트가 다운로드 한 각 소스 파일의 원본을 보관했기 때문입니다. 따라서 50 메가 바이트의 소스 코드가 있다면 Subversion 작업 디렉토리의 크기는 약 100MB가됩니다.

그러나 이것은 CVS와 같은 프로그램보다 Subversion이 작성된 시대의 차이를 반영합니다.

예전에는 개발자가 책상 위에 20 메가 바이트의 드라이브 만 가질 수 있었고 여유 공간은 1 바이트마다 소중했습니다. CVS는 소스 파일의 체크섬을 사용하여 소스 파일의 수정 여부를 결정했습니다. 작업 디렉토리의 파일이 변경되면 다른 체크섬이 생깁니다. 그러나, 만약 당신이 파일에 diff와 같은 일을했다면, CVS는 원래 소스 파일의 사본을 얻기 위해 서버와 대화해야 할 것입니다.

Subversion이 돌아 왔을 무렵, 디스크 공간은 기가 바이트 단위로 측정되었고 값이 쌌습니다. 따라서 디스크에 원본 소스 파일의 두 번째 복사본이있는 여유 공간이 충분했습니다. 이제 svn diff을 수행 할 때 네트워크 트래픽을 생성하지 않았거나 서버가 응답하기를 기다려야했습니다. 이로 인해 개발 속도가 크게 빨라졌으며 Subversion을 디자인 한 사람들은 그만한 가치가 있다고 생각했습니다.

Subversion (버전 1.7.x)의 최신 버전은 클라이언트에서 작업 디렉토리와 다른 방식으로 작동합니다. 어떻게 작동하는지 알기에는 충분하지 않습니다. 그러나 나에게 diskspace는 사소한 문제입니다. 더 필요하다면 더 많은 것을 얻을만큼 충분히 싸다. 저렴한 것은 시간과 노력을 개발하는 것입니다. 개발을 더 쉽고 빠르면 빠를수록 좋습니다.

CVS는 오랫동안 오랫동안 업데이트되지 않았습니다. Subversion은 RCS가 CVS로 대체 된 것과 같은 방식으로 대체되었습니다. Subversion을 CVS로 선택해야하는 이유가 있습니다. CVS에서 일한 사람들이 나쁜 개발자 였기 때문이 아닙니다. Subversion을 사용하는 사람들은 CVS가 가진 문제점을 해결하기 위해 CVS에 대한 10 년 이상의 경험을 할 수있었습니다.

  • 서브 버전에는 원자 checkins가 있고 CVS에는 없습니다. 이것 자체가 결정 요소가되어야합니다. 우리가 연습하는 시대에 지속적 개선, 연속 통합변경 세트의 경우 체크 인이 원자 적이어야합니다. 특정 문제를 해결하기 위해 13 개의 프로그램을 수정했고 CVS가 12 개만 체크인 한 경우 빌드가 잘못되었습니다. 특정 사안에 필요한 모든 변경 사항은 포함되지 않습니다.
  • Subversion은 파일 이름을 변경하고 이동합니다. CVS는 그렇지 않습니다.
  • Subversion에서 변경 사항을 취소하는 것이 더 쉽습니다. Subversion에서, 내가 알아야 할 것은 개정 번호이며, 나는 하나의 명령으로 그것을 할 수 있습니다. CVS에서 나는 정보를 수집하고 그것을 알아 내려고 노력해야한다. 또한 Subversion은 변경 사항을 되 돌리는 것이 훨씬 빠릅니다.
  • Subversion 분기 및 태그 지정이 더 빠릅니다. 많은 CVS 사이트에서 분기 및 태그 지정에서 벗어나기 위해 정말 나쁜 프로그램 관행을 수행합니다. CVS에서 40 분 이상을 수행하려면 Subversion에서 1 밀리 초가 걸립니다.
  • Subversion은 연속 통합 시스템에서 더 잘 작동합니다.CVS를 사용하면 CI 시스템이 변경 사항을 찾는 전체 CVS 디렉토리 구조를 거쳐야합니다. Subversion에서 CI 시스템은 프로젝트의 루트 디렉토리에 마지막 수정본 만 쿼리하면됩니다.
  • Subversion의 브랜치 및 태그에는 완전한 이력이 있습니다. 누가, 언제, 왜했는지 알 수 있습니다. 수정이 있었는지, 누가 수정했는지, 왜 그랬는지 알 수 있습니다. CVS는이 정보에 쉽게 접근 할 수 없습니다.

Subversion vs. Git vs. Mercurial vs. Bazaar vs. Perforce에 대해 이야기하고 누가 더 나은지 물어볼 수 있습니다. 각각은 현대적인 버전 제어 시스템이며 각각은 명성을 얻으려는 자신의 주장을 가지고 있습니다.

그러나 Subversion과 CVS는 별다른 차이가 없습니다. CVS는 더 이상 유지 관리되지 않고 최신 버전 제어 시스템에서 핵심 기능이 될 수있는 기능이 누락 된 버전 제어 시스템입니다. CVS와 Subversion 중 하나 인 경우 Subversion에 돈을 넣으십시오.

관련 문제