SVN이란?

SVN은 SubVersion의 줄임말로 형상관리/소스 관리 툴이다
하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 툴


형상관리란? (Software Configuration Management)

개발 및 유지보수 과정에서 발생하는 소스코드, 문서, 인터페이스 등 각종 결과물에 대해 형상을 만들고, 이들 형상에 대한 변경을 체계적으로 관리, 제어하기 위한 활동

SVN의 사용목적 정리

SVN의 사용목적은 아래와 같습니다. 각 사용목적의 순서가 중요도를 의미하지는 않습니다.

  1. 항상 배포 가능한 제품 소스를 유지
  2. 작업 내용과 변경된 소스의 연관성 유지
  3. 다수의 개발자가 각자 작업한 내용을 통합하여 최신 형상을 유지 관리
  4. 공통된 소스를 공유함으로써 중복개발 문제하고, 최신 형상의 모호성을 해결
  5. 예전 버전의 파일 복원
  6. 수정한 부분의 검증 (코드 리뷰 기능)

SVN의 용어 정리

  • Revision: 수정 후 Commit을 하면 숫자가 증가 / 저장소에 저장된 파일 버전을 의미
  • Repository: 프로젝트 파일 및 변경 정보가 저장되는 장소
  • Import: 빈 Repository에 맨 처음 파일들을 채우는 것
  • Export: 버전 관리 파일들을 뺀 순수 파일만 빼내는 것
  • Checkout: 저장소에서 최신 버전의 소스코드를 최초로 받아오는 것 / Repository에서 프로젝트 관련 파일들을 받아온다
  • Update: 로컬 저장소에 있는 파일들을 저장소의 최신 버전으로 받아 오기
  • Commit: 로컬 저장소의 변경된 내용을 서버로 전송 / Checkout한 파일의 수정사항을 갱신
  • Revert: 로컬 저장소의 내용을 이전 상태로 돌림
  • Add: 버전관리 대상으로 파일 등록
  • Shelve : 로컬 작업 내용을 잠시 백업하는것
  • Trunk: 개발 소스를 commit 했을 때 개발 소스가 모이는 곳 / 프로젝트에서 가장 중심이 되는 디렉토리, 소스와 파일 포함
  • Branch: trunk에서 분리/복사한 소스로 버전별 배포판을 만들거나 trunk와 별도로 운영환경을 위한 안정화된 소스 관리 목적으로 사용
  • Tag: 특정 시점의 상태 보존 목적으로 사용 장기적으로 1.0, 1.1 등 버전 별로 소스 코드를 따로 저장 특정 시점에서 프로젝트의 스냅샷을 찍어두는 것
  • Merge: 내가 작업한 부분과 다른 사람이 작업한 부분을 병합 한다.



+ Recent posts