출처 오승택의 블로그 | 오승택
원문 http://blog.naver.com/paradozz/13338925

Sourceforge의 CVS 사용법 (for jakarta-seoul)

Jin Woo, Min
2002.9.30 ~

 

Abstract

이 문서는 Jakarta-Seoul 프로젝트를 하시는 분들을 위해 CVS를 사용법에 관한 내용을 정리한 문서입니다. CVS 저장소로는 jakarta-k의 것을 사용합니다. 처음 보신 분은 위에서부터 하나 하나 따라해 가시면 이해가 될 것으로 믿습니다.

 

Document History

  • 2002.10.5: 실전작업 전까지 작성
  • 2002.10.2: test CVS 작업 전까지 작성
  • 2002.9.30: 쓰기 시작

 


Index

 

준비물

putty.zip 받으시면 putty.exe와 plink.exe가 함께 들어있습니다.

 

작업용 디렉토리 만들기

CVS를 이용해서 작업을 하시려면 로컬에 작업용 디렉토리가 반드시 필요합니다. 여기에서는 D:\CVS\apachekorea 라고 만들어서 사용하였습니다. 저의 경우, 워낙 이곳저곳의 CVS를 많이 긁어오는지라 CVS 밑에 서버별로 분리를 하느라 한단계를 더 두었습니다.

디렉토리를 만든 후에는 WinCVS에서 아래와 같은 툴바에서 빨간색으로 표시한 버튼을 클릭하여 위에서 만든 디렉토리를 지정합니다.

 

WinCVS 설정

Checkout(CVS서버의 모듈을 로컬의 작업공간으로 파일을 가져오는 작업)을 하기전에 먼저 아래와 같이 설정을 해야 합니다. 아래는 메뉴에서 Admin / Preferences 를 선택하면 나오는 창입니다.

첫번째 General 탭에서는 CVSROOT를 설정합니다. Authenticatino은 ssh로 선택을 하고, 나머지는 부분은 CVSROOT를 입력하면 자동으로 채워집니다.

CVSROOT는 자신의SF계정@cvs.jakarta-k.sourceforge.net:/cvsroot/jakarta-k 으로 하십시오.

참고로 sourceforge에서 CVS write access를 할 수 있는 권한은 Project Owner가 설정을 해줘야만 가능합니다. 그리고 wirte access를 하려면 반드시 ssh로 통신을 해야하구요. 일반적인 read access만 할 경우라면 authentication을 pserver로 하시면 읽는 건 간단해 집니다.

다음은 ssh 설정입니다. 위의 창에서 OK를 누르기 전에, Authentication의 Settings... 버튼을 클릭합니다. If ssh ... 을 선택하고 아래에는 plink.exe의 경로를 적습니다. Additional ssh options에도 선택을 하고 -ssh -pw 소스포지의암호를 적습니다. 주의하실 점은 암호가 노출된다는 점이지요. 저두 이것 노출안되게 하는 방법을 알고 싶습니다. 알고 계신 분 jakarta-seoul 게시판에 올려주십시오.

Globals 탭에서는 Checkout read-only가 체크되어 있지 않아야 합니다. 뜻은 다 아시겠죠?

WinCVS 탭에서는 그냥 넘어가셔도 상관은 없습니다. 참고로 저의 경우를 적은 것입니다. Edit하기 위해 외부 Editor 설정과 외부 Diff 설정이 있고, Home folder는 WinCVS에서 자체적으로 로컬에 passwd 파일을 저장합니다. 물론 암호화해서요. 그 파일의 경로가 되겠구요.

여기까지 하시고 OK버튼을 클릭하면 WinCVS의 모든 설정이 끝납니다.

 

 

plink를 위한 Hostkey 저장하기

ssh를 쓰기 위한 준비작업으로 hostkey를 registry에 cache하기 위한 작업이 있습니다. 다운 받은 프로그램 중에 putty.exe를 실행시키면 아래와 같은 화면이 나옵니다. 여기에서 Host Name을 cvs.jakarta-k.sourceforge.net으로 하시고, Protocol은 SSH를 선택합니다. 그리고, Saved Sessions에 jakarta-k (cvs)라고 입력하고, Save버튼을 클릭, Open버튼을 클릭합니다.

그러면 화면이 바뀌면서 먼저 아래와 같은 경고창이 뜹니다. 이 경고창은 hostkey를 로컬에 저장하기 위해서 뜹니다. 무조건 Yes를 하셔야 됩니다.

그 다음에 소스포지에서 자신의 계정과 암호를 입력하면 준비작업이 끝납니다.

 

 

test CVS 작업

지금부터는 처음 CVS에 접하시는 분들을 위해서 test로 CVS 작업을 하는 과정을 적어보았습니다.

Checkout

처음 하실 작업은 Checkout입니다. 위에서도 잠깐 언급했듯이 Checkout은 CVS 서버에 있는 어떤 모듈을 자신의 로컬 작업 장소로 가져오는 작업입니다. 대부분은 Checkout은 처음 한번만 이루어 집니다. 만약 작업하는 PC를 옮기셨다면 거기에서도 처음 한번 실행해야 되는 것이죠.

WinCVS에서 Checkout을 하시려면 메뉴에서 Create / Checkout modules ... 을 선택합니다. 아래와 같은 창이 뜨고, module name 란에 jakarta-k 라고 입력합니다. 아직 OK버튼을 클릭하시면 안됩니다! 밑을 계속 읽어나가십시오.

Checkout을 하고 나시면 아래와 같은 화면이 나옵니다.

참고로, CVS에서 어떤 명령을 수행하고 나서 에러가 없을 경우 code값은 0입니다. 에러가 발생할 땐 1입니다.

로컬에 jakarta-k라는 디렉토리가 생겼을 것이고, 내용을 확인해보십시오.

 

Add Directory

test용으로 새로운 디렉토리를 한번 CVS 서버에 올려보겠습니다. 제가 먼저 jakarta-k 모듈안에 test 라는 디렉토리를 만들어놓았습니다. 처음 쓰시는 분들은 이 디렉토리 하위에서 테스트해보십시오.

먼저 추가할 디렉토리를 탐색기 등에서 만드십시오. 여기서는 pooh라고 만들었습니다. 그리고, 새로 만든 디렉토리를 선택하고 툴바에서 +버튼을 클릭합니다.

클릭한 후에 디렉토리를 보시면 Status가 NonCVS Folder에서 Folder로 변경된 것을 확인할 수 있습니다. 이제 이 디렉토리는 CVS 서버에도 만들어졌다는 얘기가 됩니다. 역시 Add 후의 로그 메시지에는 code 0으로 끝나야 정상입니다.

 

Add File

이번엔 새로운 파일을 CVS 서버에 등록해보겠습니다. 디렉토리를 추가하는 방법하고 비슷한 방법으로 행해집니다. 다만 다른 점이 있다면 파일의 경우는 2가지 방법이 있습니다. Text방식과 Binary방식. Text방식은 모든 text형태의 문서들이나 소스들을 올릴때 쓰는 방법이구요. Binary는 이미지나 워드같은 파일을 올릴때 씁니다. 차이점은 FTP를 쓸 때와 비슷합니다. Text방식으로 commit하게 되면 나중에 소스안에 변경된 부분을 가려내어 보기가 편합니다. 그렇다고 Binary 파일을 text로 올리시면 큰일(?)납니다. FTP와 같이 text의 경우 DOS<->Unix간 Linefeed를 변경해주기 때문입니다.

서문이 좀 길었습니다. 현재 올리려는 파일은 xml 파일이기 때문에 text로 Add해야 합니다. 따라서 추가할 파일을 선택하고 툴바에서 [+01] 버튼 말고 [+] 버튼을 클릭하십시오.

앗! text 파일에 한글에 들어가면 아래와 같은 경고창이 뜨는군요. Ignore를 선택하시면 됩니다.

Add가 성공적으로 되면 아래와 같은 화면으로 바뀝니다. 여기까지는 아직 서버에 파일을 올린 것은 아닙니다. 지금까지는 서버한테 이런 파일을 버전관리하겠다는 안내 정도 해준 것 뿐입니다. 자세히 보시면 Rev.(Revision) 칸에 아직 0이라고 표시되어 있습니다. 아직 Revision이 매겨지지 않은 상태입니다.

 

Commit

Commit은 Add, Modify, Remove 작업 후 반드시 행해야 하는 작업입니다. DB써보신 분은 아시겠죠 무슨 의미인지? 위에서 Add한 파일을 실제 서버에 전송하는 작업은 바로 이 Commit에서 이루어지게 됩니다. 그리고 서버에 의해 버전이 관리가 되기 시작합니다.

Commit을 하려면 먼저 대상을 선택하고 툴바에서 아래와 같은 버튼을 클릭하면 됩니다.

아래와 같은 Commit settings 창이 뜰 겁니다. 이 창에서 해주어야 할 부분은 Commit에 대한 로그를 작성하는 것입니다. 이 로그는 입력하지 않아도 실은 됩니다만, 상당히 중요한 의미가 있습니다. 여러 사람이 동시에 작업을 할 때 그냥 commit 만 해놓으면 다른 사람이 볼 때 이전에 작업과 어떻게 다른 지를 구분하기가 쉽지 않게 되겠지요. 그래서 꼭 필요한 정보를 남겨 놓은게 좋습니다. 마치 코딩할 때 주석같은 개념이라고 보시면 됩니다.

jakarta-seoul 프로젝트에서는 이 부분에 원래(jakarta)의 소스 revision 정보를 적는게 좋을 것으로 봅니다.

OK버튼을 클릭하면 commit이 완료됩니다. 파일의 정보를 보시면 Rev.(Revision)에 1.1 이라고 매겨진 것을 볼 수 있습니다. 이 리비젼은 파일 당 각각 생깁니다. 그리고, modify하고 다시 commit 하면 1.2, 1.3 이런식으로 계속 증가하게 됩니다. 끝의 수치는 파일마다 다를 수 있고 파일간의 관계는 없습니다.

여기까지 하시면 자신의 파일이 서버에 정상적으로 올라가게 되고 다른 사람이 checkout이나 update를 하면 이 파일을 받아보게 될 것입니다.

 

Modify

이미 올려진 파일을 수정하고 Commit하는 방법에 대해서 설명하겠습니다.

아까 올린 파일을 열어서 편집하고 저장해보십시오. 아래와 같이 파일의 아이콘이 빨간색으로 바뀌고 Status가 Mod. File로 변경될 겁니다.

위에서 commit한 방법과 같은 방법으로 commit을 해보십시오. Rev.이 올라가는 것을 확인하실 수 있습니다.

 

 

실전 작업은 이렇게

디렉토리 구성

빌드

 

 

참고사이트

 

,