1 분 소요

정의

Subversion 은 소프트웨어 버전 관리 시스템이다. 과거에는 CVS 를 사용 하여 소프트웨어 버전관리를 하였음

Subversion 은 소스코드는 물론 바이너리 파일 등의 여러가지 형식의 파일을 관리 할 수 있다.

버전관리 시스템의 필요

버전 관리가 필요하게 된 이유는 개발자 한사람이 큰 프로젝트를 혼자 진행하지 않고 공동 작업을 하기 때문에 버전관리 시스템이 필요하게 되었다.

CVS 와 비교한 Subversion의 장점들

커밋 단위가 파일이 아니라 체인지셋이라는 점. CVS 에서는 여러개의 파일을 한꺼번에 커밋하더라도 각각의 파일마다, 리비전이 따로 붙는다, 반면 Subbersion 에서는 파일별 리비전이 없고 한번 커밋할 때마다 변경 사항별로 리비전이 하나씩 증가함

CVS에 비해 엄청나게 빠른 업데이트 / 브랜칭 / 태깅 시간

CVS 와 거의 동일한 사용법, CVS 사용자라면 누구나 어려움 없이 금방 배울수 있는 정도

파일 이름 변경, 이동, 디렉터리 버전 관리도 지원

(Atomic) 커밋, CVS에서는 여러 파일을 커밋하다가 어느 한 파일에서 커밋이 실패했을 경우 앞의 파일만 커밋이 적용되고 뒤에 파일들은 그대로 남지만, Subversion은 여러개의 파일을 커밋하더라도 커밋이 실패하면 모두 이전 상태로 되돌아 감

양방향 데이터 전송으로 네트워크 소통량 ( 트래필 ) 최소화

트리별, 파일별 접근 제어 리스트, 저장소 쓰기 접근을 가진 개발자라도 아무 소스나 수정하지 못하게 조절 가능

저장소 / 프로젝트별 환결 설정 가능

확장성을 염두에 둔 구조, 깔끔한 소스

SVN 주요 용어

  • repository(저장소)
    • 프로젝트의 파일 및 변경 정보가 저장되는 장소
  • trunk
    • 메인 개발 소스
    • 개발 소스를 commit 했을 때 개발 소스가 모이는 곳
  • branch
    • trunk에서 분기된 개발 소스
    • 실험적인 기능을 추가하거나, 출시를 위한 안정화 버전 작업을 할 때
  • tag

    • 특정 시점에서 프로젝트의 스냅샷을 찍어두는 것
    • branch와 tag는 사실 동일하지만, tag는 관례적으로 더 이상 개발하지 않고 어떤 버전으로 딱 얼려두는 것
    • tagging 하는 것도 revision으로 기록된다

image

image

SVN vs Git

image

태그: ,

카테고리:

업데이트:

댓글남기기