SVN 저장소의 디렉토리 배치
출처는 짬뽕이라 원작자분이 요청하시면 바로 출처올리겠습니다.Versioning
In this article I have followed Major.Minor.Build.Revision versioning practice which is very standard, details of it are as under:
In this version number is physically represented as a four-part string with the following format:
<major>.<minor>.<build>.<revision>
For example, version 1.5.60204.0 indicates 1 as the major version, 5 as the minor version, 60204 as the build number, and 0 as the revision number.
- Major: Major releases introduce major new technologies and changes that render previous production releases obsolete.
- Minor: Minor releases depict feature level enhancements. Addition of features between releases result in incremented minor release.
- Build: This is auto-generated number, assigned for each build on a day basis. It has YMMDD format, So Feb 04th 2006 shall be 60204.
- Note: Build number for revisions (read bug-fixes to production releases) shall remain same as originally released in production.
- Revision: This is reset to zero, for each new major/minor version released. For all later bug-fixes, patches to releases that reach production, this number shall sequentially increment.
SVN 사용중 branche 나 tag 가 필요해서 정리하다가, Subversion-HOWTO 에서 해당 내용만 발췌합니다.
저장소에 바로 소스를 넣어 프로젝트를 진행 할 수 있습니다. 그렇지만 버전 관리 시스템에서 권장하는 디렉토리 배치 방법이 있습니다.
-- http://svn.samplerepository.org/svn/sample
+--+---+- branches
| +--+- dav-mirror
| | |--- src
| | |--- doc
| | +--- Makefile
| |
| +--- svn-push
| +--- svnserve-thread-pools
|
+---+- tags
| +--- 0.10
| +--+- 0.10.1
| | |--- src
| | |--- doc
| | +--- Makefile
| |
| +--- 0.20
| +--- 0.30
| +--- 0.50
| +--- 1.01
|
+---+- trunk
|--- src
|--- doc
+--- Makefile
위 에 보이는 구조는 보통 자주 사용되는 디렉토리 구조입니다. 저장소 디렉토리 아래 branches, tags, trunk 라는 3개의 디렉토리가 있습니다. 이 디렉토리들은 각각의 용도가 있습니다. CVS는 branch와 tag를 위한 명령이 따로 존재 하지만. Subversion의 경우 명령이 있긴 하지만 단순한 디렉토리 복사와 같은 효과를 냅니다.
trunk : 단어 자체의 뜻은 본체 부분, 나무줄기, 몸통 등 입니다. 프로젝트에서 가장 중심이 되는 디렉토리입니다. 모든 프로그램 개발 작업은 trunk 디렉토리에서 이루어집니다. 그래서 위의 구조에서 trunk 디렉토리 아래에는 바로 소스들의 파일과 디렉토리가 들어가게 됩니다.
branches : 나무줄기(trunk)에서 뻗어져 나온 나무 가지를 뜻합니다. trunk 디렉토리에서 프로그램을 개발하다 보면 큰 프로젝트에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우가 생깁니다. 프로젝트안의 작은 프로젝트라고 생각하면 됩니다. branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됩니다.
tags : tag는 꼬리표라는 뜻을 가지고 있습니다. 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈를 할 때 0.1, 0.2, 1.0 하는 식으로 버전을 붙여 발표하게 되는데 그때그때 발표한 소스를 따로 저장하는 공간입니다. 위에서 보면 tags 디렉토리 아래에는 버전명으로 디렉토리가 만들어져 있습니다.