서브버전(Sebversion : SVN)은 자유 소프트웨어 버전 관리 시스템입니다.
소프트웨어의 버전을 관리하고, 팀이 같이 코드를 관리할 수 있게 해주는 등의 기능을 가진 시스템입니다. 명령행 인터페이스에서 사용하는 명령어를 따서 SVN이라고 줄여서 부르기도 합니다.
제한이 있던 CVS를 대체하기 위해서 만들어졌습니다.
CVS와의 비교
1. 원자적으로 쓰기를 지원하므로, 다른 사용자의 쓰기와 엉키지 않는다.
2. 이름을 바꾸거나, 복사하거나, 파일을 지워도 리비전 기록을 유지한다.
3. 이진 파일도 효율적으로 저장할 수 있다.
4. 디렉토리 버전 관리를 할 수 있다. 디렉토리 전체를 빠르게 옮기거나 복사할 수 있으며, 리비전 기록도 유지한다.
5. 소스 저장고의 크기에 상관없이 일정한 시간안에 가지치기(branching)나 태그 넣기(tagging)을 할 수 있다.
6. 소스 저장고로의 접근이 최적화 되어있으므로, 소스 저장고에서 필요없는 네트워크 트래픽을 줄일 수 있다.
-
Trunk would be the main body of development, originating from the the start of the project until the present.
-
Branch will be a copy of code derived from a certain point in the trunk that is used for applying major changes to the code while preserving the integrity of the code in the trunk. If the major changes work according to plan, they are usually merged back into the trunk.
-
Tag will be a point in time on the trunk or a branch that you wish to preserve. The two main reasons for preservation would be that either this is a major release of the software, whether alpha, beta, RC or RTM, or this is the most stable point of the software before major revisions on the trunk were applied. | Trunk
- 단어 자체의 뜻은 본체, 본문 등입니다.
- 프로젝트에서 가장 중심이 되는 디렉토리입니다.
- 모든 프로그램의 개발 작업은 trunk 디렉토리에서 이루어 집니다.
- trunk 디렉토리 바로 아래에는 소스들의 파일과 디렉토리가 들어가게됩니다.
Branch
- trunk에서 뻗어져 나온 나무가지를 뜻합니다.
- 프로그램을 개발하다 보면 trunk 디렉토리에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우가 있습니다.
프로젝트안의 작은 프로젝트라고 생각하면 됩니다.
- branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됩니다.
Tag
- tag는 꼬리표입니다.
- 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈 할 때, 0.1 / 0.2 / 1.0 등 이런식의 버전 별로 소스 코드를
따로 저장하는 공간입니다.
- 버전별로 태그를 붙여서 tag 디렉토리 안에 보관한다고 생각하면 됩니다. |