1.3. Subversion Repository 등록 9
2.2. MiPlatform 변경사항
형상관리에
적용하기 21
4.1. 내가
수정한
파일을
다른
사람이
이미
올려서 commit 이
실패한
경우
어떻게
하나요? 33
형상관리 개발 환경
기본 환경
- JDK 1.5
- Eclipse 3.2 WTP 버전또는 ProBuilder 4.x
또는 TortoiseSVN (TortoiseSVN 사용시 1.5장
참조)
- MiPlatform PID V3.2.0 Unicode
(이 문서는 위 소프트웨어가 설치된 것을 기본으로 설명하고 있습니다.)
Subversion Plug-in설치
Step1: ProBuilder(또는 Eclipse) 도움말 menu 에서 Installation을
시작한다.
Step2: '설치할 새 기능에 대해 검색'을 선택하고 다음을
Step3: '새 원격 사이트' 버튼을 누른다.
Step4: 아래와 같이 입력하고 '확인'버튼을 누른다.
이름: Subclipse 1.2.x (Eclipse 3.2+)
URL: http://subclipse.tigris.org/update_1.2.x
Step5:새로 입력한 사이트가 선택되어 있는 것을 확인하고 '완료'버튼을 누른다.
Step6: 아래와 같이 Subclipse 를 선택하고'다음' 버튼을 누른다.
Step7: 라이선스 확인 후 설치를 진행한다. 설치가 완료된 후 Eclipse 를 다시 시작하게 된다.
Subversion Repository 등록
Step1:오른쪽 상단의 '+' 표시가 있는 Perspective 추가 버튼을 누른 후 '기타'를 선택한다.
Step2: Perspective 열기 에서 'SVN Repository Exploring'을 선택한다.
Step3: SVN Repository View 에서 오른쪽 버튼을 누르고 'New'->'Repository Location'을 선택한다.
Step4: 'Add SVN Repository'창에서 Url에 svn://203.236.20.26/egis 를 입력하고 '완료'를 누른다.
Step5: 부 여받은 형상관리 계정과 비밀번호를 입력하고 '확인'을 누르면 repository 가 생성된다.
Step6: 등록된 repository 는 아래와 같이 확인이 가능하다.
Project Check Out
Step1: 아래와 같이 원하는 프로젝트를 체크아웃 받는다.
Step2: 아래와 같이 창이 뜨면 원하는 대로 편집하여 checkout 받을 수 있다. 일반적으로는 그냥 '완료'버튼을 누른다.
Step3: '완료'버튼을 누르고 나면 checkout 이 진행이 된다. Checkout 이 완료된 후에는 Java Perspective 는 Proframe Perspective의 Package View 에서 다음과 같이 checkout 받은 project를 확인할 있다.
Tortoise 를 이용한 형상관리
Step1: 아래 사이트에서 TortoiseSVN 을 다운 받아 설치합니다. 설치후 재부팅을 하게 됩니다.
필요에 따라 언어팩을 설치할 수 있습니다.
Step2: 탐색기에서 checkout 받을 폴더를 만들고 오른쪽 버튼을 눌러 'SVN Checkout' 을 선택한다.
Step3: 'URL of repository' 에 'svn://203.236.20.26/egis'을 입력하고 오른쪽 버튼을 누릅니다.
Step4: 아래와 같이 계정과 비밀번호를 입력하고 'OK'버튼을 누른다.
Step5: 원하는 디랙토리를 선택하고 'OK' 버튼을 누른다.
Step6: 'OK'버튼을 누른다.
Step7: 아래와 같이 해당 디렉토리의 리소스가 내 탐색기로 다운받아지고 탐색기창에 표시가 나타 난다.
( : local 데이터가 형상관리 repository 데이터와 일치함을 의미)
로컬에서 파일을 수정한 경우 아래와 같이 표시가 나타납니다.
MiPlatform 개발 절차
형상관리 환경하에서의 개발을 위해 MiPlatform 개발시에도 Eclipse 를 활용한다.
MiPlatform으로 프로젝트 열기
Step1: MiPlatform을 실행하고 'Tools'->'Project Manager'를 선택한다.
Step2: 'Project Manager'에서 'Add Exist'버튼을 클릭한다.
Step3: Eclipse(또는 TortoiseSVN)에서 checkout 받은 프로젝트안의 'WebContent' 폴더를 선택한다.
Step4: 'SKT_EGIS_ci_main_Win32.xml'을 선택하고 '열기'버튼을 누른다.
Step5: 'OK'버튼을 누른다.
Step6: 'Open Project' 버튼을 누른다.
Step7: 'SKT_EGIS' 프로젝트를 선택하고 'OK' 버튼을 누른다.
MiPlatform 변경사항 형상관리에 적용하기
Step1: 수정한 파일을 저장한다.
Step2: (ToroiseSVN 을 사용하는 경우 Step10부터 보세요.)
Eclipse 를 열고 프로젝트를 선택한호 'F5' 또는 오른쪽 버튼을 누르고 '새로 고치기'를 선택한다.
Step5: 변경된 부분이 있다면 아래와 같이 '*' 표시가 붙게 된다.
Step6: 변경된 파일 또는 폴더를 선택하고 오른쪽 버튼을 누르고 '팀'->'Commit'을 선택한다.
Step7: 아래와 같이 comment 를 입력하거나 택하고 변경 적용될 resource 를 확인하고 '확인' 버튼을 누른다.
Step8: 탐색기 상에 '*' 가 없어졌다면 정상적으로 적용이 된 것이다.
Step9: '팀'->'Show History' 를 선택하면 변경 이력을 확인해 볼 수도 있으며 각 버전간 비교도 해볼 수 있다.
Step10: Tortoise 를 사용할 경우 아래와 같이 변경된 파일과 그 상위 폴더에 표시가 나타납니다.
Step11: 변경된 파일 또는 폴더를 선택하고 오른쪽 버튼을 누르고 SVN Commit 을 선택합니다.
Step11: 아래와 같이 원하는 메시지를 작성하고 'OK' 버튼을 누른다.
Step12: 정상적으로 처리됐다면 아래와 같이 메시지가 나타난다.
배치 개발 절차
개발서버에서 체크아웃 받기
Step1: Telnet을 통해 개발자 계정(bsdev1, ccdev1…) 으로 로그인 한다.
Step2: 만일 자신의 계정이 bsdev1 이라면 아래와 같이 입력한다.
Unix 계정 암호는 그냥 엔터를 치고 넘어가면 형상관리 계정과 암호를 넣도록 나타난다. 각각 입 하고 엔터를 치면 bsdev1 이라는 디렉토리에 해당 업무의 batch 프로젝트가 체크아웃된다.
파일 추가/삭제 및 커밋
Step1: 만일 src_bat 디렉토리에 test.c 라는 파일이 추가하였다면 이 파일을 형상관리 대상에 추가하 야 한다. 형상관리 대상 추가는 아래와 같이 할 수 있다. 한번 추가된 대상은 step 은 생략하a면 된다.
Step2: 대상으로 추가한 후에는 해당 파일을 형상관리 repository에 커밋을 해야 반영이 되게 된다.위와 같이 엔터를 치면 vi 가 자동으로 실행되고 vi 를 통해 comment 를 입력할 수 있다. vi 를 종료 :' 를 누른 후 'qw'를 입력하고 엔터. 만일 comment 를 남기지 않으려면 그냥 곧바로 ':'를 누르고 q'를 입력)
Step3: vi 가 종료되면 형상관리 인증절차가 나타납니다. 마찬가지로 형상관리 계정과 암호를 넣으면 정상적으로 커밋이 됩니다. post-commit 오류는 무시하시면 됩니다.
Step4: 파일을 삭제하고자 할 경우 아래와 같이 입력하여 삭제 대상 처리를 한다.
Step5: 삭제대상으로 추가한 후에는 해당 파일을 형상관리 repository에 커밋을 해야 반영이 되게 된다.
위와 같이 엔터를 치면 vi 가 자동으로 실행되고 vi 를 통해 comment 를 입력할 수 있다. vi 를 종료 ':' 를 누른 후 'qw'를 입력하고 엔터. 만일 comment 를 남기지 않으려면 그냥 곧바로 ':'를 누르고 q'를 입력)
Step6: vi 가 종료되면 형상관리 인증절차가 나타납니다. 마찬가지로 형상관리 계정과 암호를 넣으면 정상적으로 커밋이 됩니다. post-commit 오류는 무시하시면 됩니다.
파일 업데이트
다른 사람들에 의해 업데이트 된 파일은 아래와 같이 업데이트 받을 수 있다.
ProC 데모 애플리케이션
현재 repository 에는 ProC 에 대한 데모 애플리케이션이 올라가 있습니다. 데모 애플리케이션은 아래와 같이 체크아웃 받아 테스트 해보실 수 있습니다.
Step1: 아래와 같이 Subversion 명령을 통해 체크아웃을 받습니다.
Step2: 아래 와같이 make 를 실행하여 소스를 compile 합니다.
Step3: 아래와 같이 실행파일을 실행해 볼 수 있습니다.
FAQ
내가 수정한 파일을 다른 사람이 이미 올려서 commit 이 실패한 경우 어떻게 하나요?
이와 같은 경우 아래와 같은 오류 메시지가 발생합니다.
이와 같은 경우 history 를 확인해 보면 아래와 같이 내가 checkout 받은 리비전은 154 인데 누군가 commit 을 해서 165 로 리비전이 올라가 있는 것을 볼 수 있습니다.
우선 CVS 나 Subversion 은 내 로컬 PC의 리비전이 최신 버전이 아니면 기본적으로 commit 이 안됩다. 따라서 이 경우 내 로컬 PC 의 자원의 리비전을 최신으로 올려주어야 합니다. 이 때 해당 esource 를 update 를 받게 되면 두가지로 현상이 나타 날 수 있습니다.
먼저 내가 수정한 부분과 repository 에 수정한 부분이 충돌(conflict)이 없는 경우 로컬에서 수정한 부분과 repository 의 최신 버전이 자동으로 머지가 됩니다. 만일 내가 수정한 부분과 repository
수정된 부분이 conflict 이 발생하는 경우 (같은 라인을 수정했다든지..) update 를 받으면 아래와 같이 여러 개의 파일이 생기게 됩니다. (.mine 은 내 로컬파일, r168, 169 는 각각 해당 리비전의 파일입니다.)
따라서 이경우 충돌 난 부분을 확인을 하고 수정하여 합쳐주는 작업을 해야 합니다. 만일 내
로컬에 있는 파일로 무조건 덮어 쓰려면 아래와 같이 로컬히스토리 이전 버전으로 바꾼 후에 commit 하면 됩니다.
만일 로컬과 원격 repository 의 자원의 머지가 필요하다면 아래와 같이 Synchronize 기능을 사용하면편리합니다.Synchronize 를 수행한 후에는 아래와 같이 나타납니다. 빨간색으로 양쪽 화살표가 있다면 conflict 이 발생한 것입니다. 아래와 같이 conflict 이 발생한 소스에 대해서 양쪽 버전을 비교해불 수 있습니다. 오른쪽 위의 버튼을 이용하여 차례차례 차이가 나는 것을 비교해 볼 수 있고 원격지의 변경사항을 로컬 파일에 적용시킬 수 있습니다.
이와 같이 수정한 후에 파일을 저장합니다. 저장한 후에 해당 파일을 Repository 의 최신 파일로 바꿔 버립니다 이렇게 하면 내 로컬PC의 자원은 최신 리비전으로 업데이트 됩니다. 이후에 다시 로컬 히스토리 이 버전으로 바꾸게 되면 리비전은 최신인 상태에서 Synchronize 에서 작업했던 파일 내용으로 바뀌기 때문에 commit 이 가능하게 됩니다.
이 파일은 나만 변경하고 싶을 때는 어떻게 하나요?
Subversion 에서는 lock 기능을 제공합니다. 아래와 같이 로컬리소스에 Lock 을 설정하면 다른 Lock 이 정상적으로 설정되면 아래와 같은 표시가 나타납니다. (다른 사람이 이미 Lock 을 한경우에는 이 표시가 나타나지 않습니다.)
주의할 점은 Subversion 에서 Lock 은 절대적이지 않습니다. 단순한 안전장치라고 보시면 되고요 얼마든지 다른사람이 설정한 Lock 을 가져갈 수 있습니다. (Lock 적용시 Steal Lock 체크박스가 있습니다.)
cvsnt-server-2.5.04.3236.msi