FreeBSD 핸드북 : 개발의 최전선: FreeBSD-current와 FreeBSD-stable : 인터넷 상에서 소스 트리를 동기화하기
Previous: FreeBSD의 안정 버전 사용하기
Next: Anonymous CVS

18.3. 인터넷 상에서 소스 트리를 동기화하기

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에 대한 더 자세한 정보는 다음 장들 중의 하나를 참고하시기 바랍니다:

18.3.1. Anonymous CVS

18.3.1.1. 개요
18.3.1.2. Anonymous CVS 사용하기
18.3.1.3. 예제
18.3.1.4. 참고 자료

18.3.2. CTM

18.3.2.1. Why should I use CTM?
18.3.2.2. What do I need to use CTM?
18.3.2.3. Starting off with CTM for the first time
18.3.2.4. Using CTM in your daily life
18.3.2.5. Keeping your local changes
18.3.2.6. Other interesting CTM options
18.3.2.7. Future plans for CTM
18.3.2.8. Miscellaneous stuff
18.3.2.9. Thanks!

18.3.3. CVSup

18.3.3.1. 소개
18.3.3.2. 설치
18.3.3.3. 설정(Configuration)
18.3.3.4. CVSup을 구동하기
18.3.3.5. CVSup 파일 컬렉션
18.3.3.6. 공지, 질문, 그리고 버그 리포트

FreeBSD 핸드북 : 개발의 최전선: FreeBSD-current와 FreeBSD-stable : 인터넷 상에서 소스 트리를 동기화하기
Previous: FreeBSD의 안정 버전 사용하기
Next: Anonymous CVS