둥둥
2022. 11. 19. 22:47
728x90
SVN
- SubVersion의 줄임말로 형상관리툴이다.
- 자신의 로컬에 프로젝트 소스를 다운받아 수정 및 추가(update)후 다시 업로드(commit)하는 방식을 말한다.
형상관리
- 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는것
- 형상관리는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학술 분야의 형태로 넓히는 근간을 이야기힌다.
→ 어떠한 문서나 파일이 변경된 경우, 변경된 내용과 그 원인을 기록했다가 나중에 필요한 경우 찾아볼 수 있도록 하여 관리하는것을 말한다.
SVN 구성
Repository
- 프로젝트 파일 및 변경 정보가 저장되는 저장소
- 모든 프로젝트의 프로그램 소스들, 변경 사항이 저장된다.
- 네트워크를 통해 여러 사람이 접근 할 수 있다.
Trunk
- 개발소스를 Commit했을 때 개발 소스가 모이는곳.
- 프로젝트에서 가장 중심이 되는 디렉토리, 소스, 파일을 포함한다.
- 현재 개발중인 안정화된 버전의 소스가 보관되는 폴더
- 보통 trunk의 소스를 dev branches로 생성해 개발 작업, QA 완료 후 배포 전에 trunk와 merge 작업을 진행한다.
Tag
- SVN copy 명령을 생성해서 사용한다.
- 해당 Revision의 상태 정보만 가져오는 것이기때문에 tag를 많이 생성한다고 해서 용량이 늘어나지 않는다.
- 특정 시점의 소스(trunk, branches)를 보관(snapshot)하기 위해 사용하는 폴더
- 보통 Release 버전 관리를 위해 많이 사용한다.
- 한 번 만들면 더 이상 수정하지 않는다.
Branch
- SVN copy 명령을 생성해서 사용한다.
- 해당 Revision의 상태 정보만 가져오는 것이기때문에 branch를 많이 생성한다고 해서 용량이 늘어나지 않는다.
- trunk와 분리/복사한 소스로 버전별 배포판을 만들거나 trunk와 별도로 운영환경을 위한 안정화된 소스 관리 목적으로 사용한다.
- 특정 시점의 소스(trunk, tags)로 개발을 진행할때 사용하는 폴더
- 작업자, 작업 시점에 따라 다양한 branches가 생성될 수 있다.
- 수정이 계속해서 발생하다가 trunk에 merge되는 것이 일반적이다.
Revision
- 소스파일 등을 수정해 commit할 시 일정한 규칙에 의해 숫자가 증가한다.
- 저장소에 저장된 각각의 파일 버전
- 리비전을 보고 프로젝트의 진행상황을 알 수있다.
- Import : 빈 Repository에 맨 처음 파일들을 채우는 것
- Export : 버전 관리 파일들을 뺀 순수 파일만 빼내는 것
- Checkout : 저장소에서 최신 버전 소스코드를 받아오는 것 / Repository에서 프로젝트 관련 파일들을 받아옴
- Update : 로컬 저장소에 있는 파일들을 저장소의 최신 버전으로 받아오기
- Commit : 로컬 저장소의 변경된 내용을 서버로 전송 / Checkout한 파일의 수정사항을 갱신
- Revert : 로컬 저장소의 내용을 이전 상태로 돌림
- Add : 버전관리 대상으로 파일 등록 (앞으로 사용자가 해당 파일을 관리하겠다는 의미)
- Shelve : 로컬 작업 내용을 잠시 백업하는 것. 작업하던 소스를 적용하지 않고 잠시 다른 작업을 해야할 때 백업해주는 기능
- Merge : 내가 작업한 부분과 다른 사람이 작업한 부분을 병합
- Conflict : 충돌. 여러 개발자가 공동 개발하는 경우 동일한 부분의 소스 작업을 하면 제대로 커밋되지않고 충돌이 발생
References.
728x90