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