CVS에서 이주하기

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

CVSSVN과 유사한 오래된 중앙 집중식 버전 관리 시스템입니다.

CVS 대 Git

다음 디렉터리은 CVS와 Git의 주요 차이점을 보여줍니다:

  • Git은 분산형입니다. 반면에 CVS는 클라이언트-서버 구조를 사용하여 중앙 집중식입니다. 이것은 Git이 작업 영역이 전체 리포지터리의 사본이기 때문에 더 유연한 작업 흐름을 가지고 있다는 것을 의미합니다. 이것은 브랜치를 전환하거나 Merge할 때 통신할 필요가 없으므로 예를 들어 오버헤드를 줄입니다.
  • 원자적인 작업. Git에서 모든 작업은 원자적입니다. 성공하거나 전혀 변경 없이 실패합니다. CVS에서는 커밋(및 다른 작업)이 원자적이지 않습니다. 리포지터리에서의 작업이 중간에 중단되면 리포지터리가 일관성 없는 상태로 남을 수 있습니다.
  • 저장 방법. CVS의 변경은 파일 단위로 이루어지지만 Git에서는 커밋된 파일이 전부 저장됩니다(스냅샷). 이것은 Git에서 전체 변경 사항을 쉽게 되돌리거나 취소할 수 있다는 것을 의미합니다.
  • 리비전 ID. CVS에서 변경이 파일 단위이기 때문에 리비전 ID는 버전 번호로 표시되며, 예를 들어 1.4는 특정 파일이 변경된 횟수를 나타냅니다. Git에서는 각 프로젝트 버전마다 (각 커밋마다) SHA-1에 의해 고유한 이름이 부여됩니다.
  • Merge 추적. Git은 Merge하기 전에 커밋하는 방식을 사용하며, CVS처럼 Merge하기 전에 커밋(또는 업데이트한 다음 커밋)하지 않습니다. 새로운 커밋(새 리비전)을 만들려는 동안 누군가가 동일한 브랜치에서 새로운 커밋을 만들고 중앙 리포지터리로 푸시했다면, CVS는 커밋을 허용하기 전에 작업 디렉터리를 업데이트하고 충돌을 해결해야 했습니다. 하지만 Git에서는 그렇지 않습니다. 먼저 커밋하여 상태를 버전 관리한 다음에 다른 개발자의 변경 사항을 Merge합니다. 또한 다른 개발자에게 Merge을 요청하고 충돌을 스스로 해결하게 할 수 있습니다.
  • 서명된 커밋. Git은 커밋에 서명하여 추가적인 보안 및 커밋이 원래 저자로부터 실제로 왔는지 확인을 지원합니다. GitLab은 서명된 커밋이 올바르게 확인되었는지를 보여줍니다.

위의 몇 가지 항목은 이 훌륭한 스택 오버플로우 게시물에서 가져왔습니다. 더 많은 차이점 디렉터리은 다른 버전 관리 소프트웨어 비교 위키백과 문서를 참조하세요.

이주해야 하는 이유

CVS는 2008년 이후로 새로운 릴리스가 없는 오래된 시스템입니다. Git은 더 많은 도구를 제공하여 작업이 더 프로덕션적인 흐름을 만들어줍니다. Git/GitLab로 마이그레이션하는 것은 다음과 같은 이점을 제공합니다:

  • 학습 곡선이 짧아집니다. Git은 방대한 커뮤니티와 다양한 튜토리얼을 통해 시작할 수 있는 많은 자료가 있습니다(우리의 Git 주제를 참조하세요).
  • 현대적인 도구와 통합, Git과 GitLab으로 마이그레이션하면 내장 버전 관리, 이슈 추적, 코드 리뷰, CI/CD 등을 갖춘 오픈 소스 엔드 투 엔드 소프트웨어 개발 플랫폼을 갖게 됩니다.
  • 여러 네트워크 프로토콜 지원. Git은 SSH, HTTP/HTTPS, rsync 등을 지원하고, CVS는 SSH와 자체 보안되지 않은 pserver 프로토콜만을 지원하며 사용자 인증이 없습니다.

어떻게 마이그레이션하는가

이주를 시작할 수 있는 몇 가지 링크는 다음과 같습니다: