CruiseControl & Subversion(0792026오승용,0792014남민우)

Download Report

Transcript CruiseControl & Subversion(0792026오승용,0792014남민우)

0792014 남민우
0792026 오승용

1) CruiseControl
◦
◦
◦
◦

Introduce
Advantage
Main Modules
Index
2) Subversion
◦
◦
◦
◦
버전관리시스템의 목적, CVS와 SVN
시스템 구축(Server)
Eclipse 연동(Client)
Example
What is the CruiseControl?


- 지속적 통합(CI)을 위한 구성요소 중 하나인 CI Tool로 버전저
장관리소와 연동하여 정기적으로 빌드 구축을 실행하고, 빌드 스
크립트를 수행한다.
(Java버전, 닷넷 프레임 워크버전 두 가지가 존재)
What is the purpose of CruiseControl?

- 여러 개발자들이 개발소스 코드를 지속적인 통합(CI)을 하려면
코드를 버전저장관리소에 Check in, Check out 할 때마다, 빌드
구축을 해야 한다. 이런 번거로움 없이 이걸 대신 자동화 해주는
것이 CruiseControl 이다.
Advantage of CruiseControl




- 오픈 소스의 빌드 스케쥴러이기 때문에 금전적 부담 없이 사용
가능하다.
- 많은 버전저장관리소 (SVN,CVS …)와 연동이 가능하여 확장성
이 뛰어나다.
- 수동 구축으로 인해 소비되는 시간을 줄이고, 프로그래머가 프
로그래밍에 집중할 시간이 늘어나 시간절약이 된다.
- 결과 보고서를 통하여 모든 코드가 오류 없이 제대로 동작하는
지 검증할 수 있다.
1.Build loop
CruiseControl의 핵심 모듈로 규칙적인
시간 간격으로 실행되는 빌드이며, 컴
파일 오류와 실행시 테스트 성공/실패
여부를 찾아낼 수 있다. Config.xml과
같은 파일로 환경을 구성하여, 빌드의
주기를 조정할 수 있다.
빌드의 상태에 대해서 E-mail, RSS과
같은 방법으로 사용자에게 알려준다.

- 출처 http://cruisecontrol.sourceforge.net
2. Reporting
CruiseControl의 Build Loop의
결과를 아래와 같이 보여준다.
왼쪽 창에는 프로젝트의 빌드
여부를 확인 할 수 있고, 이전
빌드의 대해서 세부사항을 링
크로 제공한다.
오른쪽 창에는 사용자가 빌드
의 결과를 탐색하고, 산출물
(컴파일 오류, 테스트 결과, 빌
드 변경 사항) 에 엑세스 할 수 있다.

- 출처 http://cruisecontrol.sourceforge.net
3. Dashboard
CruiseControl이 제공 하는 웹 인터페
이스로 버전저장관리소에 폴링 후에 자
동으로 구축한 모든 프로젝트의 빌드
상태(성공/실패 여부)들을 다양한 색상
의 스냅샷으로 볼 수 있게 제공한다.

- 출처 http://cruisecontrol.sourceforge.net





Trunk – project의 가장 중심이되는 디렉토리 모든 프로그램 개
발 작업은 trunk 디렉토리에서 이루어진다.
Check out – Repository에서 작업공간으로 파일을 인출하는 것.
Check in – Check out하여 수정된 소스를 저장소에 반영하여 최
신 version으로 갱신하는 것. (=commit)
Commit – Check out한 소스를 수정 한 뒤 저장소에 갱신하는
것.
Polling – 버전관리시스템에 변경사항을 체크하는 것.



Update – 버전저장관리소에 있는 최신 version의 변경된 소스를
가져오는 것. (즉, 새로 commit된 파일을 전달 받는다.)
Branches – project의 진행에 영향을 주지 않으면서 새로운 기능
, 기술 등을 시험해 보고 싶을 때, project 본류와 병행적으로 개
발하여, 개발 성공 시 trunk와 합류시킬 수 있다.
Tags - 현재 릴리즈된 소스를 관리하기 쉽게 따로 보관
하는데 사용. 즉, 개발을 위한 것이 아니라 보관을 위한
것이기 때문에 export만 해야 한다. 체크아웃하여 커밋
할 경우 경고 메시지가 출력된다.
버전관리시스템의 목적
1) 소스 코드의 변경사항을 보존하고, 과거 특정 시점의 소스 파일 및 디렉토
리의 내용을 손쉽게 확인가능(버그 및 문제점 추적에 유용)
2) 협동 작업시 각자가 수정한 부분을 팀원 전체에게 동기화하는 과정을 자동
화하기 위하여
3) 대규모의 수정작업을 보다 안전하게 진행하기 위하여
구분
CVS
SVN
커밋 단위
파일
체인지 셋(change set)
원자적 커밋(커밋 실패시 롤백)
미지원
지원
처리 속도
느림
빠름
파일과 디렉토리의 삭제, 이동,
이름 변경, 복사
미지원
지원
소스코드외 이진파일
(문서 라이브러리) 지원
미지원
지원
GUI 지원여부
지원
지원
WEB Interface 지원여부
지원
지원



시스템 구축(Server)
VisualSVN Server Install
http://www.visualsvn.com/server/download/


VisualSVN Server 설치후 실행 시 화면
http://컴퓨터이름:해당포트/svn/ = 서버 주소

VisualSVN Server 계정 생성



VisualSVN Server 저장소 생성
Repository Name에 만들 저장소의 이름 입력
Create default structure를 체크하면 trunk, branches, tags 폴더 자동생성
trunk - 소스의 주 개발 작업을 진행하는 폴더
branches - 소스의 실험적인 작업을 진행하는 폴더, 소스의 현재 버전을 유지보수
하고, 현재 버전을 기반으로 차기 버전을 개발할 경우 이 폴더 이용
tags - 현재 릴리즈된 소스를 관리하기 쉽게 따로 보관하는데 사용. 즉, 개발을 위한
것이 아니라 보관을 위한 것이기 때문에 export만 해야 한다. 체크아웃하여 커밋 할
경우 경고 메시지가 출력된다.



VisualSVN Server 접속

서버 주소로 접속 하면
계정과 비밀번호를 입력

VisualSVN Server 접속
서버 접속 시 첫 화면 //
SVNTEST는 생성한 저장소의
이름

Subclipse Plugin

Plugin 완료 후 View창에 SVN 저장소 추가

SVN Server와 연결 및 로그인

SVN Server에 프로젝트 공유



ShareProject 완료 후
[Team]-[Commit]을 꼭 해주어
야 SVN서버에 저장된다.
Commit = checkin


실제 사용 모습
저장소에서 Update 시킬 프로젝트 Checkout.

Javatest.java 소스 수정


수정한 소스를 저장소
에 Commit 시킨 후
수정에 대한
Comment를 남김




[Show History]
Revision = Update 번호
Date = Update한 시간
Author = Update한 사람