Jordan K. Hubbard
<jkh@FreeBSD.ORG> 저.
김덕환
<dipper@kr.FreeBSD.org> 역.
1999년 4월 11일.
인터넷(혹은 전자메일)을 사용해서 여러분의 흥미에 따라, FreeBSD 프로젝트 소스의 특정 영역이나, 전 영역을 따라갈 수 있는 다양한 방법이 있습니다. 여기에서 다루는 것은 주로 익명 CVS, CVSup과 CTM에 관한 것들입니다.
익명 CVS와 CVSup는 소스를 업데이트하는 pull 모델을
사용합니다. CVSup의 경우에는, 사용자(혹은 cron 스크립트)가
cvsup 프로그램을 실행시키게 되고, 그 프로그램은 여러분의 파일을
업데이트시키기 위해 어디인가에 있을 cvsupd와 상호작용합니다. 여러분이
받게 되는 업데이트는 매우 최신으로 것으로 여러분이 그것들을 원할 때, 그리고
오직 그 때만, 그것들을 얻게 됩니다. 여러분의 업데이트를 여러분에게 흥미로운
특정 파일이나 디렉토리로 쉽게 제한할 수 있습니다. 여러분이 가지고 있는 것과
가지기 원하는 것에 따라서, 서버가 신속하게 업데이트를 생성합니다.
익명 CVS는 원격 CVS 저장소로부터 직접 변화된 것들을 끌어오는 것을
가능하게 해주는 cvs(1)의 확장판이라는 점에서 CVSup보다는
약간 더 간단하다고 할 수 있습니다. CVSup는 이것을 훨씬 더 효율적으로
할 수 있지만, anoncvs가 사용하기는 더 쉽습니다.
반면에, CTM는 여러분이 가지고 있는 소스와 마스터 아카이브에 있는 것을 상호작용적으로 비교하지 않거나, 그렇지 않다하더라도 변화된 것들을 끌어오지(pull)는 않습니다. 대신에, 마스터 CTM 머신에서 하루에 몇 차례씩 이전 실행 이후로 파일에 일어난 변화를 식별해내는 스크립트가 실행되어지는데, 그렇게 해서 발견된 변화들은 압축되어져서, 연속적인 일련 번호를 부여 받은 다음, 전자메일 상에서의 전송을 위해 (프린트될 수 있는 ASCII 문자만으로) 엔코드(encode)되어집니다. 일단 수신이 되어지면, 이 "CTM 변화들(delta)"을 자동적으로 디코드(decode)하고, 검증해서 사용자의 소스 트리에 그 변화를 적용시키는 ctm_rmail(1) 유틸리티에게 넘겨줄 수 있습니다. 이 과정은 CVSup이나 익명 CVS보다 훨씬 더 효율적인 것으로, 그것이 pull 모델이라기보다는 push 모델이기 때문에 서버 자원에도 더 적은 부하가 걸립니다.
물론, 서로 각각 장단점이 있습니다. 여러분이 실수로 여러분 아카이브의 일부분을 지워버렸다면, CVSup는 여러분을 위해서 그 손상된 부분을 탐지해내고 다시 만들어낼 것입니다. CTM은 이것을 하지 않을 것이며 anoncvs는 아마 다른 어떤 것들보다도 더 심각하게 혼란스러워질 수 있습니다. 여러분의 소스 트리의 일부분을 날려 버렸다면(그리고 그것을 백업시켜 놓지 않았다면), 여러분은 CTM을 사용해 완전히 처음부터 (가장 최근의 CVS "기본 변화(base delta)"에서부터) 시작해서 전체를 새로 만들어 내거나, anoncvs를 사용해서, 그 잘못된 부분을 삭제한 다음 재동기화(re-sync)시켜야 합니다.
익명 CVS, CTM 그리고 CVSup에 대한 더 자세한 정보는 다음 장들 중의 하나를 참고하시기 바랍니다:
CTM?CTM?CTM for the first timeCTM in your daily lifeCTM