Contents
1. ìŠ¤í† ë¦¬ 1 프로ì �트 시작 ¶
í™�길ë�™ 씨는 C++로 Hello World를 ìž‘ì„±í•˜ë ¤ê³ í•œë‹¤. 간단한 소스지만 CVSì—� 넣어 볼겸 한번 만들어 본다.
ë¨¼ì € 다ì�Œ ë‚´ìš©ì�˜ cvs loginì�„ 위한 cvs_set_remote.bat 란 세팅 배치 파ì�¼ì�„ 만들었다.
ë¨¼ì € 다ì�Œ ë‚´ìš©ì�˜ cvs loginì�„ 위한 cvs_set_remote.bat 란 세팅 배치 파ì�¼ì�„ 만들었다.
cvs_set_remote.bat 내용 (한글부분� 채워넣어 주세요.)
~cpp SET CVSROOT=:pserver:아�디@165.194.17.15:/home/CVS SET PATH=%PATH%;"C:\Program Files\GNU\WinCvs 1.3"
�움�
~cpp SET CVSROOT=:pserver:ìž�ì‹ ì�˜ì•„ì�´ë””@서버주소:서버ì�˜CVS홈주소
1.1. 로그ì�¸ ¶
ì›�하는 ë””ë ‰í† ë¦¬ì—�서 배치 파ì�¼ì�„ 실행해서 cvsê°€ 실행ë�˜ëŠ”ì§€ 확ì�¸í•˜ê³ 로그ì�¸ì�„ 한다. (문서ì�˜ 작성ìž�는 ìž�ì‹ ì�´ ì•Œê³ ìžˆëŠ” 서버를 ì�´ìš©í•˜ì˜€ìœ¼ë‹ˆ ê°œì�˜ì¹˜ 마세요.)
~cpp .\>cvs_set_remote.bat .\>cvs login Logging in to :pserver:neocoin2@165.194.17.15:2401/home/CVS CVS password: ********
1.2. 프로ì �트 ìƒ�성 ¶
프로ì �트 ì§„í–‰ í�´ë�”를 ë§Œë“¤ê³ , 프로ì �트를 서버ì—� 등ë¡�한다.
(ì�´ë¬¸ì„œë¥¼ 여러분께서 ì‹¤í–‰í•˜ì‹ ë‹¤ë©´, 중복ë� ì§€ 모르니, ì¶©ë�Œë‚˜ë©´ 다른 프로ì �트 ì�´ë¦„으로 만들어 보세요.)
ë�„움ë§� : 프로ì �트를 서버ì—� 등ë¡�한다. 만약 ë‚´ë¶€ì—� 소스같ì�€ ìž�ì›�ì�´ 있다면 ê°™ì�´ 등ë¡�ë�œë‹¤.
~cpp .\> mkdir HelloWorld .\> cd HelloWorld .\HelloWorld> cvs import -m "Hello World를 ì¶œë ¥ 하는 프로ì �트" HelloWorld zeropage HelloWorld
ë�„움ë§� : 프로ì �트를 서버ì—� 등ë¡�한다. 만약 ë‚´ë¶€ì—� 소스같ì�€ ìž�ì›�ì�´ 있다면 ê°™ì�´ 등ë¡�ë�œë‹¤.
~cpp cvs import -m "코멘트" 프로ì �트ì�´ë¦„ VenderTag ReleaseTag
1.3. 프로ì �트 받아오기 (checkout) ¶
서버ì—� 등ë¡�ë�œ 프로ì �트를 받아온다. ì�´ì œ ì–´ë””ì—�서나 checkoutì�„ 하면 프로ì �트를 받아 올수 있다.
프로ì �트 ì „ì²´ë¥¼ ê°€ì§€ê³ ì˜¤ëŠ” ê°œë…�ì�´ë�¼ì„œ ìƒ�위 ë””ë ‰í† ë¦¬ì—�서 수행한다.
프로ì �트 ì „ì²´ë¥¼ ê°€ì§€ê³ ì˜¤ëŠ” ê°œë…�ì�´ë�¼ì„œ ìƒ�위 ë””ë ‰í† ë¦¬ì—�서 수행한다.
(프로ì �트 í�´ë�” ë‚´ë¶€ì—� CVSê°€ ìƒ�겼으면 성공한 것ì�´ë‹¤.)
~cpp .\HelloWorld>cd.. .\>cvs checkout HelloWorld cvs server: Updating HelloWorld .\> cd HelloWorld
ë�„움ë§� : ì§€ì •í•˜ëŠ” 프로ì �트(모듈) ì „ì²´ë¥¼ 받아 온다. localì—� 처ì�Œ 프로ì �트를 받아 올때 사용한다.
~cpp cvs checkout 프로ì �트ì�´ë¦„(모듈ì�´ë¦„)
1.4. 소스 추가 ¶
길ë�™ì”¨ëŠ” 프로ì �트 세팅ì�´ ë��ë‚˜ê³ ê°„ë‹¨ížˆ HelloWorld.java ë�¼ëŠ” 프로그램ì�„ 작성했다.
소스
소스를 작성후 ì�´ 파ì�¼ì�„ 서버ì—� 등ë¡�(add)í•˜ê³ , 소스를 올린다.
~cpp .\HelloWorld> notepad HelloWorld.cpp
~cpp
#include <stdio.h>
int main(int argc, char* argv[]){
printf("Hello World\n");
return 0;
}
~cpp .\HelloWorld>cvs add HelloWorld.cpp cvs server: scheduling file `HelloWorld.cpp' for addition cvs server: use 'cvs commit' to add this file permanently .\HelloWorld>cvs commit -m "Hello World를 ì¶œë ¥í•œë‹¤." cvs commit: Examining . RCS file: /home/CVS/HelloWorld/HelloWorld.cpp,v done Checking in HelloWorld.cpp; /home/CVS/HelloWorld/HelloWorld.cpp,v <-- HelloWorld.cpp initial revision: 1.1 done
ë�„움ë§� : add 서버ì—� 추가ë�˜ëŠ” ìž�ì›�ì�„ 등ë¡�한다. commit 서버ì—� 변경사í•ì�„ ë°˜ì˜�시킨다.
~cpp cvs add ���름 cvs commit -m "코멘트"
2. ìŠ¤í† ë¦¬ 2 í™�길ë�™ì”¨ 프로그램 ê³ ì¹˜ë‹¤. ¶
í™�길ë�™ì”¨ëŠ” ì�´ë ‡ê²Œ 프로그램ì�„ 서버ì—� ì˜¬ë¦¬ê³ ìž�ì‹ ì�˜ PCì—� 있는것ì�€ 지워 버린후 몇ì�¼ 잊어 ë²„ë¦¬ê³ ìžˆì—ˆë‹¤. 그러다가, 잡지를 ë³´ë�˜ì¤‘ C++ OOP 프로그래
ë°�ì—� 관한 기사를 ì�½ê³ ìž�ì‹ ì�˜ 프로그램ì�„ 잘못 작성ë�˜ì—ˆë‹¤ê³ ìƒ�ê°�í•˜ê³ ê³ ì¹˜ë ¤ 한다.
2.1. 소스 받기 ¶
ë�™ì�¼í•˜ê³ cvs_set_remote.bat ì�„ 실행 로그ì�¸ì�„ í•˜ê³ , checkoutì�„ 한다. 시작 ë””ë ‰í† ë¦¬ëŠ” c:\user> 로 ê°€ì •í•˜ì˜€ë‹¤.
ë�„움ë§� : checkout 서버ì—� 등ë¡�ë�˜ì–´ 있는 모듈(프로ì �트)를 받아온다.
~cpp C:\User>cvs_set_remote.bat . . . C:\User>cvs login Logging in to :pserver:neocoin2@165.194.17.15:2401/home/CVS CVS password: ******** C:\User>cvs checkout HelloWorld cvs server: Updating HelloWorld U HelloWorld/HelloWorld.cpp C:\User>cd HelloWorld C:\User\HelloWorld>notepad HelloWorld.cpp
ë�„움ë§� : checkout 서버ì—� 등ë¡�ë�˜ì–´ 있는 모듈(프로ì �트)를 받아온다.
~cpp cvs checkout 모듈ì�´ë¦„(프로ì �트ì�´ë¦„)
2.2. 소스 ê³ ì¹˜ê³ ë‹¤ì‹œ 올리기 ¶
ê·¸ë¦¬ê³ ì�´ë ‡ê²Œ ê³ ì¹˜ê³ ,
변경� 소스를 올린다.
~cpp
#include <iostream>
using namespace std;
int main(int argc, char* argv[]){
cout << "Hello World!" << endl;
return 0;
}
~cpp C:\User\HelloWorld>cvs commit -m "iostream� 쓴것" cvs commit: Examining . Checking in HelloWorld.cpp; /home/CVS/HelloWorld/HelloWorld.cpp,v <-- HelloWorld.cpp new revision: 1.2; previous revision: 1.1 done�움� : commit 서버� 변경� ��� 반�한다.
~cpp cvs commit -m "코멘트"
2.3. 지금까지 log 보기 ¶
길�씨는 HelloWorld.cpp � 코멘트를 본다.
~cpp C:\User\HelloWorld>cvs log HelloWorld.cpp RCS file: /home/CVS/HelloWorld/HelloWorld.cpp,v Working file: HelloWorld.cpp head: 1.2 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 2; selected revisions: 2 description: ---------------------------- revision 1.2 date: 2002/07/30 16:45:16; author: neocoin2; state: Exp; lines: +2 -0 iostreamì�„ 쓴것 ---------------------------- revision 1.1 date: 2002/07/30 16:26:13; author: neocoin2; state: Exp; Hello World를 ì¶œë ¥í•œë‹¤. =============================================================================
2.4. diff ë²„ì „ê°„ ì°¨ì�´ 보기 ¶
í™�길ë�™ì”¨ëŠ” 로그ì�˜ ë²„ì „ì�„ ë³´ê³ ë²„ì „ê°„ì—� ì°¨ì�´ì �ì�„ ë³´ê³ ì‹¶ë‹¤.
~cpp
.\HelloWorld>cvs diff -r "1.1" -r "1.2" HelloWorld.cpp
Index: HelloWorld.cpp
===================================================================
RCS file: /home/CVS/HelloWorld/HelloWorld.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -r1.1 -r1.2
1,2c1,3
< #include <stdio.h>
<
---
> #include <iostream>
> using namespace std;
>
4c5
< printf("Hello World\n");
---
> cout << "Hello World!" << endl;
ë�„움ë§� : diff ë‘� ë²„ì „ê°„ì�˜ ì°¨ì�´ë¥¼ 비êµ� 한다. 파ì�¼ì�´ë¦„ì�„ ìƒ�략하면 해당 프로ì �트ì�˜ ëª¨ë“ ì†ŒìŠ¤ë“¤ì�˜ ë²„ì „ë“¤ì�„ ì²´í�¬í•´ì„œ ã…—ì�¸ë‹¤.~cpp cvs diff -r "ë²„ì „" -r "ë²„ì „" (파ì�¼ì�´ë¦„)
3. Thread ¶
- 수많ì�€ 엔터프ë�¼ì�´ì¦ˆ 툴들ì�´ CVS를 ì§€ì›�합니다. (Rational Rose, JBuilder, Ecilpse, IntelliJ, Delphi etc) ì�´ë“¤ 툴로서 guiì�˜ ì ‘ê·¼ë�„ ê°€ëŠ¥í•˜ê³ , 컴퓨터ì—� ì„¤ì¹˜í•˜ì‹ WinCVS로ë�„ 가능합니다. 하지만 그런 툴들ë�„ 모ë‘� ì�´ëŸ¬í•œ ê³¼ì •ì�„ 거치는것ì�„ ë‹¨ì¶•í•˜ê³ íŽ¸ì�˜ì„±ì�„ ì œê³µí•©ë‹ˆë‹¤. (WinCVS ì—시) Visual Studio는 ìž�사ì�˜ Source Safe외ì—�는 기본 ì§€ì›�ì�„ 하지 않는ë�°, 플러그ì�¸ì�„ 찾게ë�˜ë©´, ë§�í�¬ 혹ì�€ 아시면 ë§�í�¬ 걸어 주세요. --ìƒ�민
- 문서ì—�서는 굉장히 기초ì �ì�¸ 부분만ì�„ 다루었습니다. WinCVS는 guië�¼ 문ìž�로 설명ì�´ 부족해서 하지 않았지만, 시간ì�´ 나시면 둘러 보는 것ì�„ 추천해 드립니다.










