본문 바로가기

Programing/Subversion/Trac

Subversion 용어 및 branches, tags, trunk 폴더

출처 : http://six605.tistory.com/271

0.Intro

Subversion 은 Server/Client 개념이 적용된 소스 코드 관리 시스템이다.
소스코드의 변경 과정을 추적하며, 각 단계별 복사본을 유지함으로써
여러사람이 하나의 프로젝트를 동시에 개발하는데 유용한 프로그램이다.

1. 용어 설명

 

1.1. repository (저장소)

- 소스 코드, 변경 사항들을 유지하는 Server 측의 공간
- 다수의 클라이언트가 이곳에 접속하여 파일들을 읽고 쓰게 된다.
- 저장소는 파일서버와 비슷해 보이지만 파일서버와는 다른 특징을 같고 있다.
즉, 저장소에서 발생되는 모든 변화를 기억 하고 있다

1.2. commit

- checkout 한 작업의 사본에 행해진 파일의 수정, 추가, 삭제 등을 저장소에 반영
- commit 을 하면 revision 이 1 증가함

1.3. revision

- 저장소가 commit 을 수용할 때 마다 파일 시스템 트리의 새로운 상태를 만든다.
이 상태를 revision 이라고 한다.
- 각각의 revision 은 고유의 자연수를 가지게 되는데, 이전 revision 버전보다 1 증가된
값을 갖는다.
- 새롭게 생성된 저장소의 최로의 revision 번호는 0 이며 아무것도 없는 루트 디렉토리다.
- revision 번호는 각각의 파일에 적용되지는 않는다.
각각의 revision 번호는 commit 한 이후의 변화된 저장소의 상태를 나타낸다.

cf) revision N은 N번째 commit 이후의 저장소 파일 시스템 상태를 나타낸다.

 


1.4. checkout

- 저장소의 내용을 클라이언트 폴더에 받는다. (저장소와 클라이언트 폴더의 동기화)
- checkout 한 파일(작업사본)들은 commit 함으로써 저장소에 저장된다.
- checkout 한 폴더에 보면 Subversion 이 사용하고 유지하는, 버전 관리를 위한 파일들도
포함되어 있다.



1.5. export

- 특정 revision의 소스를 클라이언트로 복사함
- update 및 commit 은 불가능함 (즉, 버전 정보가 없는 깨끗한 사본을 받음)
- 소스를 압축하여 릴리즈 할 때 사용함

1.6. import

- 버전 관리 대상이 아닌 파일과 디렉토리를 추가
- 즉, 이제부터 버전관리를 하고자 하는 소스를 저장소에 넣는다.

1.7. update

- 저장소의 변경사항을 현재 작업하는 곳으로 가져와 반영한다.
- 자신의 클라이언트에서 작업중인 변경사항은 유지하면서 저장소의 변경사항이 반영됨.

1.8. revert

- 클라이언트에서 특정 파일의 상태를 저장소의 상태로 되돌림.



Subversion 에서 사용하는 디렉토리


Subversion으로 관리되는 소스(VMS4.0)의 저장소에 보시면 위와 같이 3개의 폴더가
있습니다.

trunk
소스의 주 개발 작업을 진행하는 폴더 입니다.

branches
 소스의 실험적인 작업을 진행하는 폴더 입니다.
 소스의 현재 버전은 유지보수 하고, 현재 버전을 기반으로 차기 버전을 개발할 경우
 branches 폴더를 사용합니다.

tags
 현재 릴리즈된 소스를 관리하기 쉽게 따로 보관하는데 사용 합니다.
즉, 개발을 위한 것이 아니라 보관을 위한 것이기 때문에 export 만 해야 합니다.
체크아웃하여, 커밋할 경우 경고 메시지가 출력됩니다.

 


“branch/tag” 명령


“branch/tag” 는 svn copy 명령을 사용하여 단순히 trunk 폴더를 branch, tag 폴더에
복사해주는 역할을 합니다. 단, “branch/tag” 를 한다고 해서 저장소의 용량이 2배, 3배
늘어나지는 않습니다. 이유는 svn copy 명령은 실제로 소스를 복사하지 않고 저장소
내부적으로 링크를 거는 역할만 하기 때문입니다.
“branch/tag” 명령으로 branches 및 tag 폴더에 복사된 코드를 소스 체크아웃 후 개발하면
됩니다.

 

TortoiseSVN을 이용한 “branch/tag” 사용법

클라이언트의 저장소 폴더에서 마우스 오른쪽 버튼을 클릭 합니다.
컨텍스트 메뉴에서 “TottoiseSVN->Branch/tag…”를 선택 합니다.

 

 

 

 


From WC at URL
서버의 저장소에 있는 소스 폴더 입니다.

To URL
“branch/tag” 할 URL을 저정해 줍니다.

Create Copy in the repository from
HEAD revision in the repository  : 저장소의 최신 리비전
Specific revision in repository    : 서버상 특정 리비전
Working copy                             : 작업 사본

'Programing > Subversion/Trac' 카테고리의 다른 글

VisualSVN Server와 Trac 연동하기  (0) 2009.06.26