2012년 7월 13일 금요일

SVN(Subversion)

SVN이란?

  • 자유 소프트웨어 버전 관리 시스템.
  • 소프트웨어의 버전을 관리하고 팀과 같이 코드를 관리할 수 있게 해주는 시스템.
  • 제한이 있던 CVS(버전 관리 툴)를 대체하기 위해 만들어짐짐

CVS와 비교

  1. 원자적으로 쓰기를 지원하므로, 다른 사용자의 쓰기와 엉키지 않는다.
  2. 이름을 바꾸거나, 복사하거나, 파일을 지워도 리비전 기록을 유지한다.
  3. 이진 파일도 효율적으로 저장할 수 있다.
  4. 디렉토리 버전 관리를 할 수 있다. 디렉토리 전체를 빠르게 옮기거나 복사할 수 있으며, 리비전 기록도 유지한다.
  5. 소스 저장고의 크기에 상관없이 일정한 시간안에 가지치기(branching)나 태그 넣기(tagging)을 할 수 있다.
  6. 소스 저장고로의 접근이 최적화 되어있으므로, 소스 저장고에서 필요없는 네트워크 트래픽을 줄일 수 있다.

중요 개념

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 : 서버로 자신의 소스를 업데이트 하는 작업



댓글 없음:

댓글 쓰기

태그