SVN이란?
- 자유 소프트웨어 버전 관리 시스템.
- 소프트웨어의 버전을 관리하고 팀과 같이 코드를 관리할 수 있게 해주는 시스템.
- 제한이 있던 CVS(버전 관리 툴)를 대체하기 위해 만들어짐짐
CVS와 비교
- 원자적으로 쓰기를 지원하므로, 다른 사용자의 쓰기와 엉키지 않는다.
- 이름을 바꾸거나, 복사하거나, 파일을 지워도 리비전 기록을 유지한다.
- 이진 파일도 효율적으로 저장할 수 있다.
- 디렉토리 버전 관리를 할 수 있다. 디렉토리 전체를 빠르게 옮기거나 복사할 수 있으며, 리비전 기록도 유지한다.
- 소스 저장고의 크기에 상관없이 일정한 시간안에 가지치기(branching)나 태그 넣기(tagging)을 할 수 있다.
- 소스 저장고로의 접근이 최적화 되어있으므로, 소스 저장고에서 필요없는 네트워크 트래픽을 줄일 수 있다.
중요 개념
Trunk
- 단어 자체의 뜻은 본체, 본문 등입니다.
- 프로젝트에서 가장 중심이 되는 디렉토리입니다.
- 모든 프로그램의 개발 작업은 trunk 디렉토리에서 이루어 집니다.
- trunk 디렉토리 바로 아래에는 소스들의 파일과 디렉토리가 들어가게됩니다.
Branch
- trunk에서 뻗어져 나온 나무가지를 뜻합니다.
- 프로그램을 개발하다 보면 trunk 디렉토리에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우가 있습니다.
프로젝트안의 작은 프로젝트라고 생각하면 됩니다.
- branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발하게 됩니다.
Tag
- tag는 꼬리표입니다.
- 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈 할 때, 0.1 / 0.2 / 1.0 등 이런식의 버전 별로 소스 코드를
따로 저장하는 공간입니다.
- 버전별로 태그를 붙여서 tag 디렉토리 안에 보관한다고 생각하면 됩니다.
기타 용어 설명
- SVN Server : 소스코드가 담기는 서버, Client Tool을 사용하여 접속한다.
- SVN Client : 서버 접근을 위한 개발자용 도구
- Repository : SVN Server가 관리하는 소스의 정보가 담긴 시스템
- Share : 맨 처음 Repository에 프로젝트를 올리는 작업
- Check Out : Repository의 최종 소스를 처음으로 Client에 내려받는 작업
- Update : 서버에 있는 최신소스를 받아오는 작업
- Commit : 서버로 자신의 소스를 업데이트 하는 작업
[참고]:http://croute.me/308
댓글 없음:
댓글 쓰기