superkind
6/29/2018 - 4:35 AM

SVN 용어 및 명령어

#svn

SVN 용어 및 명령어


용어

Repository

  • 모든 프로젝트의 프로그램 소스들이 저장되는 저장소. 소스뿐만이 아니라 소스의 변경 사항도 모두 저장된다.
  • 네트워크를 통해서 여러 사람이 접근 할 수 있다.
  • 버전 관리 시스템 마다 각각 다른 파일 시스템을 가지고 있으며 Subversion은 Berkeley DB를 사용한다.
  • 한 프로젝트 마다 하나의 저장소가 필요하다.

Revision

  • 소스 파일등을 수정하여 Commit하면 일정한 규칙에 의해 숫자가 증가
  • 저장소에 저장된 각각의 파일 버전

Trunk

  • 모든 프로그램 개발 작업은 Trunk 디렉토리에서 이루어짐
  • Trunk 디렉토리 아래에는 바로 소스들의 파일과 디렉토리가 들어가게 된다

Branch

  • 본 프로젝트에서 새로운 기능을 추가할 경우 완성될때까지 다른 기능들에 영향을 미칠 가능성이 있을 경우 프로젝트를 분리해서 작업할 수 있게 하는 기능.

Tags

  • 정기적으로 릴리즈를 할 때 버전을 붙여 발표하게 되는데, 그때 마다 소스를 따로 저장하는 공간

Head

  • REPOSITORY에 저장된 파일(폴더, 프로젝트)의 가장 최신 리비전

명령어

Import

  • 처음 프로젝트 시작할 때 저장소에 등록하는 명령어

Commit

  • Checkout한 소스를 수정, 파일 추가, 삭제 등을 한 뒤 저장소에 갱신

Checkout

  • 저장소에서 소스를 받아오는 명령어

Update

  • 이전에 가져온 로컬의 소스와 현재 서버의 HEAD REVISION와 동기화 시키는 작업
  • 로컬에 가지고 있는 파일들의 버전과 현재 서버 HEAD REVISION과 비교하여 다른 파일이 있다면 서버파일들과 동일하게 동기화 시키는 작업
  • 소스 수정이나 Commit 하기전에 한 번씩 해줘야 할 듯. 잘못하면 소스 망치는 경우가 있을 듯

Revert

  • 로컬의 소스를 작업하다가 CHECKOUT 받았을 때의 소스로 복원하는 작업
  • 좀 이상함 버그가 많은듯. Update to specific revision를 사용하자

Switch

  • Branch로 생성한 프로젝트를 사용하기 위해서 바꿔주는 것.

Merge

  • Branch로 생성된 프로젝트와 본프로젝트들간을 병합하는 것.
  • Merge는 commit까지 하는것은 아니므로 commit 해주어야 함

Export

  • Checkout과는 달리 버전관리 파일을 뺀 순수 소스만 가져오는 명령

Update

  • Checkout해서 받은 소스를 최신의 소스로 업데이트 하는 명령어