25
SUBVERSION 기기 기기기 2007 기 4 기 5기 기기기기기 MAZE 9 기 기기기 Email : [email protected] Blog : http://yarmini.com

Subversion 기초 사용법

Embed Size (px)

DESCRIPTION

Subversion 기초 사용법. 단국대학교 MAZE 9 기 박선응. 2007 년 4 월 5 일. Email : [email protected] Blog : http://yarmini.com. 목차. Subversion 소개 버전 관리 툴의 필요성 Subversion 구조도 저장소 (Repository) 란 Subversion 설치하기 사용하기 저장소 생성하기 (Create Repository) 프로젝트 등록하기 (Import) 소스 가져오기와 갱신 (Checkout, Update) - PowerPoint PPT Presentation

Citation preview

Page 1: Subversion  기초 사용법

SUBVERSION 기초 사용법

2007 년 4월 5 일단국대학교 MAZE 9

기 박선응 Email : [email protected] Blog : http://yarmini.com

Page 2: Subversion  기초 사용법

목차

1. Subversion 소개1) 버전 관리 툴의 필요성2) Subversion 구조도3) 저장소 (Repository)란4) Subversion 설치하기

2. 사용하기1) 저장소 생성하기 (Create Repository)2) 프로젝트 등록하기 (Import)3) 소스 가져오기와 갱신 (Checkout, Update)4) 수정된 소스 적용하기 (Commit)5) 파일 추가 , 삭제하기 (Add, Delete)6) 수정사항 확인하기 , 되돌리기7) 프로젝트 버전에 따른 백업 (Tag)8) 오버레이 아이콘 상태 설명

3. 프로젝트 참고사항1) 개발 흐름도2) 프로젝트 관리하기

4. 인용 및 참고 자료

Page 3: Subversion  기초 사용법

1.1 버전 관리 툴의 필요성

필요성- 한 개의 파일 또는 전체 프로젝트 복구 기능

- 소스 수정 , 추가 , 삭제 등 기록이 로그로 남음

- 충돌 없이 팀 단위의 동시 개발이 가능함 (Copy-Modify-Merge

패턴 )

- 이전 코드와 비교하여 수정 부분을 쉽게 알 수 있음 (diff)

- 버전이나 일정 단위로 따로 저장하여 백업이 가능함 (tag)

Page 4: Subversion  기초 사용법

1.2 Subversion 구조도

서버와 클라이언트로 구성되며 서로간에는 네트워크나 로컬로 접근한다• TortoiseSVN

• SVNSERVE Manager

Page 5: Subversion  기초 사용법

1.3 저장소 (Repository) 란

Subversion 의 핵심

프로젝트 소스와 각 종 변경사항 로그를 저장

각각의 클라이언트들은 하나의 저장소에

접근하여 소스를 읽거나 갱신함

버전관리 프로젝트 마다 하나의 저장소가 필요

Subversion 에서는 Binary 파일도 저장 ,

관리가 가능함

Page 6: Subversion  기초 사용법

1.4 Subversion 설치하기

ServerSubversion(http://www.subversion.org) 커맨드 라인 기반의 클라이언트와 서버 프로그램

SVNSERVE Manager(http://www.pyrasis.com/.../SVNSERVEManager)

Svnserve 명령어를 자동으로 실행시켜 편리하게 함

ClientTortoiseSVN(http://tortoisesvn.tigris.org) Windows 기반의 Subversion Client 로서 GUI 메뉴로 커맨드 명령어를 대체하여

편리함

EtcWinMerge(http://winmerge.org) 기본 Diff 프로그램보다 기능이 막강하여 Diff 를 대체 하여 사용함

Page 7: Subversion  기초 사용법

1.4 Subversion 설치하기

SVNSERVE ManagerSubversion 의 고유 프로토콜인 ‘ svn://’ 을 이용 할 수 있게 해주는 ‘ Svnserve.exe’ 를 자동으로 실행시켜줌

- Subversion Repository Root 에는 저장소의 Root( 상위 폴더 ) 를 설정해야 한다

- Subversion 은 기본적으로 3690 포트를 사용한다 . 또한 방화벽 예외 옵션에 추가 하여야 한다 .

( 빈칸일 경우 기본 포트 3690 을 사용 )

Page 8: Subversion  기초 사용법

2.1 저장소 생성하기 (Create Repository)1. 저장소 생성하기

(Server)① 프로젝트 폴더 생성 후 ‘현재 위치에 저장소 생성’ 클릭

② 저장소 형식을 ‘고유의 파일시스템’ 선택

Page 9: Subversion  기초 사용법

2.1 저장소 생성하기 (Create Repository)2. 저장소 권한

설정하기 (Server)① ‘.\conf\svnserve.conf’ 의 권한 설정 Anon-access 비 인증 사용자 권한 설정 Auth-access 인증 사용자 권한 설정

Type None : 접근 제한 Read : 읽기만 허용 Write : 읽기 /쓰기 허용

password-db 사용자 계정 , 암호를

참조할 파일명 제시

Page 10: Subversion  기초 사용법

2.1 저장소 생성하기 (Create Repository)3. 저장소 계정과 암호 설정하기 (Server)

① ‘.\conf\passwd’ 에서 계정과 암호 설정

계정과 암호 설정 ID = Password

(ID:yarmini, PW:maze)

다중 사용자 경우 아래에 추가

Page 11: Subversion  기초 사용법

2.1 저장소 생성하기 (Create Repository)4. 저장소 폴더 구조

(Server) ProjectBranchesSensor_Test

Doc

Src

Bin

Tags1.0.0

Doc

Src

Bin

1.2.0_서울대대회

TrunkDoc

Src

Bin

Trunk

- 프로젝트의 중심이 되는 폴더

- 실제 개발 진행은 이곳에서 진행

Branches

- Trunk에서 뻗어나온 또 하나의 프로젝트로서

메인 프로젝트에서 분기하여 따로 개발을 진행

Tags

- 버전 업이나 특정 시점에서 프로젝트 전체를

복사하여 보관하는 곳

Page 12: Subversion  기초 사용법

2.1 저장소 생성하기 (Create Repository)5. 저장소 폴더 생성

(Client) TortoiseSVN 의 저장소 브라우져를 실행하여 Server

의 저장소에 접근

- SVNServer 로 접근 할 경우

svn://IP-Address/Project

- Direct Directory 로 접근 할 경우 file:///Repos-path/Project

Trunk, Branches, Tags

폴더 생성

Page 13: Subversion  기초 사용법

2.2 프로젝트 등록하기(Import)① 등록할 프로젝트 폴더에서 임포트 (Import) 를 실행한다

② 저장소의 주소를 입력하고 확인을 눌러 등록한다 (->Trunk)

기본적으로 예약되어있는 확장자만 등록하며 ,

추가로 필요한 것은 후에 따로 추가한다

주의사항 : Import한 폴더는 저장소에 등록만 하는 것이며 버전 관리는 되지 않는다 .

Page 14: Subversion  기초 사용법

2.3 소스 가져오기와 갱신 (Checkout, Up-date)

1. 소스 가져오기(Checkout)

저장소의 소스 폴더를 복사본을 받고 , 이에 대한 버전 관리를 시작함 (->

저장소와 동기화 )

원하는 리비전의 번호를 선택하여 저장되었던 기존 소스들을 받아 볼 수 있음

폴더 마다 ‘ .svn’ 의 숨겨진 폴더가 생기며 이것은 버전 관리 파일들 인식과 변경사항을 저장하는 기능을 함

Page 15: Subversion  기초 사용법

2.3 소스 가져오기와 갱신 (Checkout, Up-date)

2. 소스 갱신 (Update)

저장소의 소스폴더와

비교하여 변경된 부분을

검사하고 최신 버전으로

동기화를 맞춤

매번 Checkout 을 할

경우에는 용량 문제로

오랜 시간이 소요 되기

때문에 Update

기능을 사용

Page 16: Subversion  기초 사용법

2.4 수정된 소스 적용하기(Commit)

소스를 변경한 후

저장소에 반영

Commit 을 하지

않으면 소스가

변경되었다 하더라도

저장소에 반영되지

않는다

Commit 할 때마다

리비전이 증가하여

변경사항이 기록이

남는다

더블 클릭 할 경우 기존 저장소의 내용과 비교하는 프로그램(WinMerge)이 실행되어 변경사항을 확인 할 수 있다 .

프로젝트의 최상위 폴더에서 한다

Page 17: Subversion  기초 사용법

2.5 파일 추가 , 삭제하기(Add, Delete)

주의사항

TortoiseSVN 의 Add, Delete, Rename 을 하지 않고 임의로 추가

/ 삭제 / 변경을 하였을 경우에는 자동으로 저장소에는 반영되지

않는다 .

저장소에 파일을

추가하여 버전 관리

목록에 추가한다

추가 후 Commnit

을 해야 저장소에

저장된다 .

삭제 (Delete), 이름변경

(Rename) 도

위와 같다

Page 18: Subversion  기초 사용법

2.6 수정사항 확인하기 , 되돌리기1. 수정사항

확인하기① 특정 파일 , 폴더에서 ‘수정 사항 확인’을 실행

② 비교해볼 파일을 더블클릭

Page 19: Subversion  기초 사용법

2.6 수정사항 확인하기 , 되돌리기1. 수정사항

확인하기③ 자동으로 저장소의 소스와 현재 베이스 소스를 비교하는 ‘ WinMerge’ 가 실행된다 .

Page 20: Subversion  기초 사용법

2.6 수정사항 확인하기 , 되돌리기2. 수정사항

되돌리기

마지막 Commit/

Update 를 했던

소스로 되돌린다 .

Page 21: Subversion  기초 사용법

2.7 프로젝트 버전에 따른 백업 (Tag)① 프로젝트 최상위 폴더에서 ‘브랜치 / 태그’를 실행

② 대상 URL ‘SVN://IP-Address/Project/Tags/1.x.x’ 로 복사

Page 22: Subversion  기초 사용법

저장소로부터 업데이트 된 후 아무 변경도 없었다는 것을 나타냄

파일이 수정 된 후 아직 Commit 되지 않았다는 것을 나타냄

업데이트 중 저장소와 작업용 복사본 사이에 충돌이 발생했다는 것을 나타냄

다음 Commit 시 저장소에 추가될 폴더 또는 파일이라는 것을 나타냄

다음 Commit 시 저장소로부터 삭제될 폴더 또는 파일이라는 것을 나타내거나 버전 컨트롤 되는 파일이 폴더에 없다는 것을 나타냄

2.8 오버레이 아이콘 상태 설명

Page 23: Subversion  기초 사용법

3.1 개발 흐름도

저장소 생성

프로젝트 등록

Checkout/Update

소스 수정

Commit

Branches/ Tag

Export

Page 24: Subversion  기초 사용법

3.2 프로젝트 관리하기

1. 프로젝트 진행 시 유익한 툴

Trac – Subversion 과 연계된 프로젝트 관리 도구로써 버그 트랙커 , 문서 관리 ( 위키 ), 로드맵 , 마일스톤 , 등의 프로젝트 진행 시에 필요한 막강한 기능들이 있음

Doxygen – 정해진 규칙대로 주석을 작성하여 소스들을 문서화 할 수 있게 함

Wiki – 웹 상에서 여러 사용자가 정보를 기록 / 생산 / 수정이 가능

Page 25: Subversion  기초 사용법

4. 인용 및 참고 자료

Subversion 사용 HowTo – pyrasis.com

Version Control with Subversion(SVN) – PNU 최규철

TortoiseSVN 초보자 가이드 - 광운대학교 K-NET 5 기 조형렬

Subversion Manual

About CVS(Concurrent Version System) – SSM17 기 문병기

외 3 명

브랜치 (Branch) 와 Merge - KLDP