Download presentation
Presentation is loading. Please wait.
1
Subversion 기초 사용법 단국대학교 MAZE 9기 박선응 2007년 4월 5일
Blog :
2
목차 Subversion 소개 사용하기 프로젝트 참고사항 인용 및 참고 자료 버전 관리 툴의 필요성 Subversion 구조도
저장소(Repository)란 Subversion 설치하기 사용하기 저장소 생성하기(Create Repository) 프로젝트 등록하기(Import) 소스 가져오기와 갱신(Checkout, Update) 수정된 소스 적용하기(Commit) 파일 추가, 삭제하기(Add, Delete) 수정사항 확인하기, 되돌리기 프로젝트 버전에 따른 백업(Tag) 오버레이 아이콘 상태 설명 프로젝트 참고사항 개발 흐름도 프로젝트 관리하기 인용 및 참고 자료
3
1.1 버전 관리 툴의 필요성 필요성 한 개의 파일 또는 전체 프로젝트 복구 기능
소스 수정, 추가, 삭제 등 기록이 로그로 남음 충돌 없이 팀 단위의 동시 개발이 가능함(Copy-Modify-Merge 패턴) 이전 코드와 비교하여 수정 부분을 쉽게 알 수 있음(diff) 버전이나 일정 단위로 따로 저장하여 백업이 가능함(tag)
4
1.2 Subversion 구조도 서버와 클라이언트로 구성되며 서로간에는 네트워크나 로컬로 접근한다 TortoiseSVN
SVNSERVE Manager
5
1.3 저장소(Repository)란 Subversion의 핵심 프로젝트 소스와 각 종 변경사항 로그를 저장
각각의 클라이언트들은 하나의 저장소에 접근하여 소스를 읽거나 갱신함 버전관리 프로젝트 마다 하나의 저장소가 필요 Subversion에서는 Binary파일도 저장, 관리가 가능함
6
1.4 Subversion 설치하기 Server Client Etc
커맨드 라인 기반의 클라이언트와 서버 프로그램 SVNSERVE Manager( Svnserve 명령어를 자동으로 실행시켜 편리하게 함 Client TortoiseSVN( Windows 기반의 Subversion Client로서 GUI메뉴로 커맨드 명령어를 대체하여 편리함 Etc WinMerge( 기본 Diff 프로그램보다 기능이 막강하여 Diff를 대체 하여 사용함
7
1.4 Subversion 설치하기 SVNSERVE Manager
Subversion의 고유 프로토콜인 ‘svn://’을 이용 할 수 있게 해주는 ‘Svnserve.exe’를 자동으로 실행시켜줌 Subversion Repository Root에는 저장소의 Root(상위 폴더)를 설정해야 한다 Subversion은 기본적으로 3690 포트를 사용한다. 또한 방화벽 예외 옵션에 추가 하여야 한다. (빈칸일 경우 기본 포트 3690을 사용)
8
2.1 저장소 생성하기(Create Repository)
저장소 생성하기 (Server) 프로젝트 폴더 생성 후 ‘현재 위치에 저장소 생성’ 클릭 저장소 형식을 ‘고유의 파일시스템’ 선택
9
2.1 저장소 생성하기(Create Repository)
저장소 권한 설정하기 (Server) ‘.\conf\svnserve.conf’의 권한 설정 Anon-access 비 인증 사용자 권한 설정 Auth-access 인증 사용자 권한 설정 Type None : 접근 제한 Read : 읽기만 허용 Write : 읽기/쓰기 허용 password-db 사용자 계정, 암호를 참조할 파일명 제시
10
2.1 저장소 생성하기(Create Repository)
저장소 계정과 암호 설정하기 (Server) ‘.\conf\passwd’에서 계정과 암호 설정 계정과 암호 설정 ID = Password (ID:yarmini, PW:maze) 다중 사용자 경우 아래에 추가
11
2.1 저장소 생성하기(Create Repository)
저장소 폴더 구조 (Server) Trunk 프로젝트의 중심이 되는 폴더 실제 개발 진행은 이곳에서 진행 Branches Trunk에서 뻗어나온 또 하나의 프로젝트로서 메인 프로젝트 에서 분기하여 따로 개발을 진행 Tags 버전 업이나 특정 시점에서 프로젝트 전체를 복사하여 보관 하는 곳 Project Branches Sensor_Test Doc Src Bin Tags 1.0.0 1.2.0_서울대대회 Trunk
12
2.1 저장소 생성하기(Create Repository)
저장소 폴더 생성 (Client) TortoiseSVN의 저장소 브라우져를 실행 하여 Server의 저장소에 접근 SVNServer로 접근 할 경우 svn://IP-Address/Project Direct Directory로 접근 할 경우 file:///Repos-path/Project Trunk, Branches, Tags 폴더 생성
13
2.2 프로젝트 등록하기(Import) 기본적으로 예약되어있는 확장자만 등록하며, 추가로 필요한 것은 후에 따로 추가한다
저장소의 주소를 입력하고 확인을 눌러 등록한다(->Trunk) 기본적으로 예약되어있는 확장자만 등록하며, 추가로 필요한 것은 후에 따로 추가한다 주의사항 : Import한 폴더는 저장소에 등록만 하는 것이며 버전 관리는 되지 않는다.
14
2.3 소스 가져오기와 갱신(Checkout, Update)
저장소의 소스 폴더를 복사본을 받고, 이에 대한 버전 관리를 시작함(->저장소와 동기화) 원하는 리비전의 번호를 선택하여 저장되었 던 기존 소스들을 받아 볼 수 있음 폴더 마다 ‘.svn’의 숨겨진 폴더가 생기며 이것은 버전 관리 파일들 인식과 변경사항 을 저장하는 기능을 함
15
2.3 소스 가져오기와 갱신(Checkout, Update)
저장소의 소스폴더와 비교하여 변경된 부분 을 검사하고 최신 버전으로 동기화를 맞춤 매번 Checkout을 할 경우에는 용량 문제로 오랜 시간이 소요 되기 때문에 Update 기능을 사용
16
2.4 수정된 소스 적용하기(Commit) 소스를 변경한 후 저장소에 반영
프로젝트의 최상위 폴더에서 한다 소스를 변경한 후 저장소에 반영 Commit을 하지 않으면 소스가 변경 되었다 하더라도 저장소에 반영되지 않 는다 Commit할 때마다 리비전이 증가 하여 변경사항이 기록이 남는다 더블 클릭 할 경우 기존 저장소의 내용과 비교하는 프로그램(WinMerge)이 실행되어 변경사항을 확인 할 수 있다.
17
2.5 파일 추가, 삭제하기(Add, Delete) 저장소에 파일을 추가하여 버전 관리 목록에 추가한다
저장소에 파일을 추가하여 버전 관리 목록에 추가한다 추가 후 Commnit을 해야 저장소 에 저장된다. 삭제(Delete), 이름변경(Rename)도 위와 같다 주의사항 TortoiseSVN의 Add, Delete, Rename을 하지 않고 임의로 추가/삭제 /변경을 하였을 경우에는 자동으로 저장소에는 반영되지 않는다.
18
2.6 수정사항 확인하기, 되돌리기 수정사항 확인하기 특정 파일, 폴더에서 ‘수정 사항 확인’을 실행 비교해볼 파일을 더블클릭
19
2.6 수정사항 확인하기, 되돌리기 수정사항 확인하기
2.6 수정사항 확인하기, 되돌리기 수정사항 확인하기 자동으로 저장소의 소스와 현재 베이스 소스를 비교하는 ‘WinMerge’가 실행된다.
20
2.6 수정사항 확인하기, 되돌리기 수정사항 되돌리기 마지막 Commit/Update를 했던 소스로 되돌린다.
21
2.7 프로젝트 버전에 따른 백업(Tag) 프로젝트 최상위 폴더에서 ‘브랜치/태그’를 실행
대상 URL ‘SVN://IP-Address/Project/Tags/1.x.x’로 복사
22
2.8 오버레이 아이콘 상태 설명 저장소로부터 업데이트 된 후 아무 변경도 없었다는 것을 나타냄
파일이 수정 된 후 아직 Commit 되지 않았다는 것을 나타냄 업데이트 중 저장소와 작업용 복사본 사이에 충돌이 발생했다는 것을 나타냄 다음 Commit 시 저장소에 추가될 폴더 또는 파일이라는 것을 나타냄 다음 Commit 시 저장소로부터 삭제될 폴더 또는 파일이라는 것을 나타내거나 버전 컨트롤 되는 파일이 폴더에 없다는 것을 나타냄
23
3.1 개발 흐름도 저장소 생성 프로젝트 등록 Checkout Commit /Update 소스 수정 Branches / Tag
Export 소스 수정
24
3.2 프로젝트 관리하기 프로젝트 진행 시 유익한 툴 Trac – Subversion과 연계된 프로젝트 관리 도구로써 버그 트랙커, 문서 관리(위키), 로드맵, 마일스톤, 등의 프로젝트 진행 시에 필요한 막강한 기능들이 있음 Doxygen – 정해진 규칙대로 주석을 작성하여 소스들을 문서화 할 수 있게 함 Wiki – 웹 상에서 여러 사용자가 정보를 기록/생산/수정이 가능
25
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
Similar presentations