Back-end/DEV notes

형상관리 SVN이란?? SubVersioN

cheersHena 2018. 10. 11. 14:46
반응형


SVN SubVersioN. 형상관리


서브버전은 자유 SW 버전 관리 시스템이다.

SVN을 사용하여 소스파일과 문서 이력을 기록할 수 있다. 시간에 걸쳐 파일과 디렉토리를 관리한다.파일들은 저장소 (Repository)에 저장되고, 저장소는 보통의 파일 서버와 비슷하지만, 이제껏 만들어진 파일과 디렉토리의 모든 변경을 기록하고 기억하고 있다.


왜 사용할까?

파일과 디렉토리의 집합에 대한 변경을 추적하고 기록하기 위함

개발 이력 관리를 위해 사용 

팀 프로젝트시 변경전 이력을 모두 남아있어 프로젝트 공유에 용이 


주요 기능 

중단으로 인한 저장소내의 불일치나 손상을 피할 수 있다.

이름을 바꾸거나, 복사하거나, 파일을 지워도 계정기록을 유지한다.

시스템이 디렉토리, 파일이름 바꾸기, 파일 메타데이터에 대해서도 판본 호수를 지정 관리하므로 사용자는 디렉토리 전체를 빠르게 옮기거나, 복사시에도 전체 개정 이력을 보유할 수 있다. 

소스를 한번 저장 후 변경시 변경부분만 저장하기때문에, 저장소를 효율적으로 사용한다. 

소스저장소의 크기에 관계없이 일정시간 안에 가지치기(branching)이나 태그넣기(tagging)을 할 수 있다.

태생적으로 클라이언트-서버, 계층 라이브러리 설계를 채택하여 사용함

클라이언트/서버 통신 규약이 버전간 차이를 양방향으로 보낸다.

소스저장소로의 접근이 최적화되어있어, 소스 저장고에서 필요없는 네트웍트래픽을 줄일 수 있다.


기본용어

Repository 프로젝트 파일 및 변경 정보가 저장되는 저장소  

Import 빈 Repository에 맨 처음 파일들을 채우는 것

Checkout Repository에서 프로젝트 관련 파일들을 받아옴 (소스다운)

Commit Checkout한 파일의 수정사항을 갱신, Recision 카운트 증가

Revision commit할때마다 카운트 되는 번호 

Update checkout한 파일들을 최신의 것으로 갱신, 소스수정이나 commit 전에 해주면 좋음.

Export 버전관리 파일들을 뺀 순수 파일만 빼내는것.

Tag  개념적으로 특정 시점에서 프로젝트의 스냅샷을 찍어두는 것. 즉, Revision 번호 그 자체. 완성된프로젝트를 버전별로 소스코드를 따로 저장하는 공간.

Branch 브런치 생성 = 복사 

Trunk 프로젝트에서 중심이 되는 디렉토리로 최신 소스와 파일들이 포함됨.

Diff 수정된 파일과 수정 이전 파일 차이정보 비교, 출력 

Merge 변경사항 병합 




* Trunk, branch, tags 관계

Trunk
 단어 자체의 뜻은 본체, 본문이며  프로젝트에서 가장 중심이 되는 디렉토리다
 모든 프로그램의 개발 작업은 trunk 디렉토리에서 이루어짐
 trunk 디렉토리 바로 아래에는 소스들의 파일과 디렉토리가 들어간다

Branch
trunk에서 뻗어져 나온 나무가지
프로그램을 개발하다 보면 trunk 디렉토리에서 또 다른 작은 분류로 빼서 따로 개발해야 할 경우, 프로젝트안의 작은 프로젝트.
 branches 디렉토리 안에 또 다른 디렉토리를 두어 그 안에서 개발

Merge
Trunk에서 분기된 Branch를 다시 Trunk로 합쳐는 작업

Tag
 이 디렉토리는 프로그램을 개발하면서 정기적으로 릴리즈 할 때, 0.1 / 0.2 / 1.0 등과 같은식의 버 전 별로 소스 코드를 따로 저장하는 공간이다. 버전별로 태그를 붙여서 tag 디렉토리 안에 보관







반응형