>  기사  >  운영 및 유지보수  >  리눅스에서 cvs란 무엇인가?

리눅스에서 cvs란 무엇인가?

青灯夜游
青灯夜游원래의
2022-07-01 15:50:033143검색

Linux에서 cvs의 전체 이름은 중국어로 "코드 버전 제어 소프트웨어"를 의미하는 "동시 버전 시스템"입니다. 다중 사용자 개발 환경에서 소스 코드 유지 관리에 주로 사용되는 GNU 소프트웨어 패키지입니다. CVS는 프로그래밍뿐만 아니라 공유 파일의 편집 및 수정과 같은 모든 문서의 개발 및 사용을 유지할 수 있습니다. CVS에서 유지 관리하는 파일 형식은 텍스트 또는 바이너리일 수 있습니다. CVS의 클라이언트/서버 기반 동작을 통해 여러 사용자를 수용할 수 있습니다.

리눅스에서 cvs란 무엇인가?

이 튜토리얼의 운영 환경: linux7.3 시스템, Dell G3 컴퓨터.

cvs in Linux

CVS(Concurrent Versions System, 코드 버전 제어 소프트웨어)는 다중 사용자 개발 환경에서 소스 코드 유지 관리에 주로 사용되는 GNU 소프트웨어 패키지입니다. 이와 유사한 코드 버전 제어 소프트웨어가 Subversion입니다. 여러 개발자가 중앙 버전 제어 시스템을 통해 파일 버전을 기록하여 파일 동기화를 보장합니다. CVS 버전 관리 시스템은 다중 사용자 개발 환경에서 소스 코드 유지 관리에 주로 사용되는 GNU 소프트웨어 패키지입니다. 그러나 CVS 코딩의 이전 문제로 인해 대부분의 소프트웨어 개발 회사에서는 CVS 대신 SVN을 사용했습니다.

Concurrent는 동시성, 협업, 일관성이라는 의미를 갖습니다. 실제로 CVS는 프로그래밍에만 국한되지 않고 공유 파일의 편집, 수정 등 모든 문서의 개발 및 사용을 유지 관리할 수 있습니다. CVS가 유지 관리하는 파일 형식은 텍스트 또는 바이너리일 수 있습니다.

CVS는 복사-수정-병합(복사, 수정, 병합) 변경 테이블을 사용하여 파일 동시 액세스 및 수정을 지원합니다. 이는 소스 파일의 저장소를 사용자의 작업 공간과 명시적으로 분리하고 병렬로 작동할 수 있도록 합니다.

CVS의 클라이언트/서버 기반 동작을 통해 여러 사용자를 수용할 수 있습니다. 이 기능은 서로 다른 위치에 있는 사람들이 동시에 데이터 파일(특히 프로그램의 소스 코드)을 작업할 때 CVS를 첫 번째 선택으로 만듭니다.

작업 아이디어

다양한 프로젝트의 소스 프로그램을 저장할 수 있는 소스 코드 라이브러리를 서버에 구축하세요. 이러한 소스 프로그램은 소스코드 저장소 관리자가 일률적으로 관리합니다. 각 사용자는 소스 코드 라이브러리를 사용하기 전에 먼저 소스 코드 라이브러리의 프로젝트 파일을 로컬로 다운로드해야 합니다. 그런 다음 사용자는 이를 로컬에서 수정할 수 있고 마지막으로 CVS 명령을 사용하여 제출하면 CVS 소스 코드 라이브러리가 균일하게 됩니다. 수정 사항을 관리합니다. 이런 방식으로 마치 한 사람만 파일을 수정하는 것처럼 충돌을 방지하고 파일 변경 사항을 추적할 수 있습니다.

CVS는 주류 오픈 소스 네트워크 투명한 버전 제어 시스템인 Concurrent Versions System의 약자입니다. CVS는 개인 개발자부터 대규모 분산 팀까지 모든 사람에게 유용합니다.

클라이언트/서버 액세스 방법을 통해 개발자는 모든 인터넷 액세스 포인트에서 최신 코드에 액세스할 수 있습니다. 무제한 버전 관리 체크아웃(체크아웃: 참고 1) 모드는 단독 체크아웃 모드로 인해 발생하는 일반적인 수동 충돌을 방지합니다. 클라이언트 도구는 대부분의 플랫폼에서 사용할 수 있습니다.

CVS는 Mozilla, GIMP, XEmacs, KDE, GNOME 등과 같은 인기 있는 오픈 소스 프로젝트에서 사용됩니다. 그래서 그것은 어떤가요?

멋지다고 말할 수도 있지만 "나"에게는 무엇을 할 수 있을까요? 첫째, 기본 사항: 버전 제어 시스템은 일련의 파일에 대한 변경 내역을 유지합니다. 개발자에게 이는 개발 전반에 걸쳐 프로그램에 대한 모든 변경 사항을 추적할 수 있음을 의미합니다. 명령줄에서 잘못된 키를 눌러 하루의 작업을 낭비한 적이 있습니까? 버전 관리 시스템은 안전한 네트워크를 제공합니다.

버전 관리 시스템은 누구에게나 유용합니다. (결국 보안 네트워크를 사용하고 싶지 않은 사람이 있을까요?) 소프트웨어 개발 팀에서 자주 사용합니다. 팀으로 작업하는 개발자는 개별 변경 사항을 조정할 수 있어야 하며 중앙 집중식 버전 제어 시스템이 이를 가능하게 합니다.

코드 조정

기존 버전 제어 시스템에서는 개발자가 파일을 체크아웃하고 수정한 다음 다시 체크인합니다. 파일을 체크아웃한 개발자는 파일을 수정할 수 있는 독점 권한을 갖습니다. 다른 개발자는 파일을 체크아웃할 수 없으며 해당 파일을 체크아웃한 개발자만 변경 사항을 체크인할 수 있습니다(참고 2). (물론 관리자가 이 제한을 극복할 수 있는 방법은 많습니다.)

독점 체크아웃이 어떻게 작동할지 생각해 보세요. Bob의 동생은 댓글을 추가하기 위해 foo.java를 체크아웃하고 코드를 작성한 후에는 아무 작업도 하지 않습니다. 그런 다음 그는 점심을 먹으러 갔다. Bob은 점심 식사를 마친 후 상사가 그에게 지적한 버그가 foo.java에 있다는 것을 발견했습니다. 그는 foo.java를 확인하려고 시도하지만 그의 형이 이미 그것을 확인했기 때문에 버전 관리 시스템이 그를 허용하지 않습니다. Bob은 버그를 고칠 수 있도록 형이 점심을 먹고 돌아올 때까지 기다려야 했습니다(이 "좋은" 날에는 2시간이 걸렸습니다).

개발자가 어느 시간대에나 늦게까지 작업할 수 있는 대규모 오픈 소스 프로젝트에서 한 개발자에게 다른 개발자가 다른 개발자가 파일에 대해 계속 작업하는 것을 방지할 수 있는 기능을 제공하는 것은 분명히 작동하지 않습니다. 그들은 결국 원할 때 프로젝트를 수행할 수 없다는 사실에 지루함을 느끼게 될 것입니다.

CVS는 무제한 결제 모드로 이 문제를 해결합니다. 파일을 체크아웃한다고 해서 개발자에게 해당 파일에 대한 독점 권한이 부여되는 것은 아닙니다. 다른 개발자도 이를 확인하고 직접 변경한 후 다시 체크인할 수 있습니다.

"잠깐만요"라고 말할 수도 있습니다. "하지만 후속 등록이 이전 등록을 덮어쓰게 되는 것은 아닌가요?" 대답은 '아니오'입니다. 자세한 답변은 여러 개발자가 동일한 파일을 변경하면 CVS가 이를 감지하고 해당 변경 사항을 자동으로 병합한다는 것입니다.

와우. 자동으로 걱정하지 마십시오. CVS는 주의를 기울여 동일한 코드 줄에 적용되지 않는 한 변경 사항을 자동으로 병합합니다. CVS가 이러한 변경 사항을 안전하게 처리할 수 없는 경우 개발자는 이를 수동으로 병합해야 합니다. 여기서 어디로 가야합니까?

CVS에 기능을 추가하거나 CVS를 더 쉽게 사용할 수 있도록 다양한 플랫폼에서 사용할 수 있는 CVS 추가 기능이 많이 있습니다.

사용혜택

  • 소프트웨어를 수정하다 보면 일부 버그가 자신도 모르게 섞여 있을 수 있고, 그 존재를 알아차리는 데 오랜 시간이 걸릴 수도 있습니다. cvs를 사용하면 이전 버전을 쉽게 복원하고 어떤 수정 사항이 버그를 일으켰는지 확인할 수 있습니다. 때로는 이것이 유용합니다.

  • cvs는 파일의 모든 버전을 하나의 파일에 저장하는 현명한 방법을 사용하여 서로 다른 버전 간의 차이점만 저장합니다.

  • cvs는 원래 1986년 12월 comp.sources.unix 뉴스 그룹 6권에 Dick Grune이 쉘 스크립트로 게시했으며 Brian Berliner가 cvs를 디자인하고 코딩했습니다. 그런 다음 Jeff Polk는 Brian이 cvs 모듈 및 공급업체 브랜치 지원을 설계하는 데 도움을 주었습니다.

  • cvs는 무엇을 구성하는지 안내할 수 없습니다. 복구 목적으로 설계한 트리 구조 파일만 저장합니다.

  • cvs는 체크아웃 작업 디렉터리에서 디스크 공간을 사용하는 방법을 결정할 수 없습니다. 모든 디렉터리에 Makefile이나 스크립트를 작성하고 다른 모든 항목의 상대적 위치를 알아야 하는 경우 전체 저장소를 확인해야 하는 경우가 있습니다.

  • 작업을 모듈화하고 파일을 공유하는 빌드 시스템(링크, 마운트, Makefile의 VPATH 등을 통해)을 설정하면 원하는 대로 디스크 사용량을 조정할 수 있습니다.

  • 이러한 빌드 시스템(스크립트, Makefile 등)을 지원하려면 cvs 아래에 도구를 넣어야 합니다.

  • cvs 범위 밖에서 일부 변경 사항이 발생하면 어떤 파일을 다시 빌드해야 하는지 생각해 보세요. 전통적인 방법은 make를 사용하여 일부 자동화된 도구를 구성하고 사용하여 make에서 사용하는 관련 파일을 생성하는 것입니다.

관련 추천: "Linux 비디오 튜토리얼"

위 내용은 리눅스에서 cvs란 무엇인가?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.