본문 바로가기
카테고리 없음

SVN (subversion) 이란

by 살길바라냐 2020. 4. 22.
반응형

소프트웨어 버전 관리 시스템으로 
혼자가 아닌 여러명이 일정이상의 규모를 가진
프로젝트를 공동작업하기 위하여 버전 관리하기 위한 시스템

장점



1. 개발버전, 릴리즈 버전을 따로 관리 가능
2. 소스 수정 오류 발생시 원복이나 복구가 쉬움
3. 변경 수정사항 기록이 남아 추적이 쉬움
4. 개발자들이 매번 수동으로 백업하지 않아도됨

주요용어 설명

저장소  Repository

모든 프로젝트의 프로그램의 소스들은 이저장소에 저장
물론 소스의 변경사항 포함해서
네트워크를 통해 여러사람이 접근가능
버전마다 다른 파일을 가지고 있음(Bekeley DB)

리비전 Revision

소스파일들을 커밋을 하게되면
일정한 규칙에 의해 숫자가 증가
저장소에 저장된 가각의 파일버전

트렁크 trunk

본체부분, 나무줄기, 몸통이라는 뜻으로
모든 프로그램 개발 작업은 trunk 디렉토리에 이루어짐
trunk 디렉토리 아래에는 바로 소스들의 파일과 디렉토리가 들어감

브랜치즈 branches

나무줄기에 뻗어나오는 가지를 말하는 거로 
trunk 디렉토리에서 프로그램을 개발하다보면
큰프로젝트에서 또다른 작은 분류로 빼서 따로 개발해야
하는 경우가 생길경우 사용

명령어

체크아웃 check-out

저장소에서 소스를 받기 
만약 소스외의 다른 파일들이 딸려 온다면
그 다른파일들은 버전 관리를 위한 파일들임
임의로지우거나 변경시 저장소와 연결되지 않음

커밋 Commit

체크아웃 한 소스를 수정, 파일 추가, 삭제 등을
한뒤 저장소에 저장하여 갱신하는 것
(cvs 수정판 파일 리비전 증가, subversion 전체 리비전 1증가)

업데이트 Update

저장소에 있는 가장 최신 버전의 소스를 가져오지만
바뀐부분만 가져옴

임포트 Import

저장소에 맨처음 소스를 넣는 작업

익스포트 Export

체크아웃과 다르게 버전 관리 파일들을 뺀
순수 소스파일만 받아오는 것
보통 릴리즈때 많이 사용

리버트 Revert

저장소 서버에 있는 파일 상태로 되돌린다는 뜻

Blame

소스파일을 대상으로 각 리비전 대해서
어떤 행을 누가 수정했는지 알아보기 위한 명령

lock

락을 건 사용자만 수정할 수 잏게 해주는 명령
해제는 svn unlock
왜 파일에 락을 걸었는지는 로그를 기록할수도 있음

상태

non-versioned

버전 관리 대상이 아닌 상태
저장소 서버에 관련 없는 파일, 이 파일을 커밋할 시 
서버에 파일을 추가 

added

버전관리 대상이며, 저장소 서버에 곧 추가될
파일이라고 알리는 상태
add후에는 꼭 commit을 해줘야함

missing

버전관리 대상 저장소 서버에는 있지만
현재 내 pc에는 파일이 없는 상태
이파일을 커밋을 하면 저장소 서버에서는 파일 삭제됨

728x90