SVN이란?
SVN은 Subversion의 줄임말로 형상관리/소스 관리 툴이다
하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 툴
프로젝트 소스는 SVN 서버의 Trunk라는 곳에 위치, 자신의 Local에 Trunk의 소스를 다운받아(update) 수정 및 추가 후 다시 업로드(commit)하는 방식
자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch를 만들어 작업 후 자기 자신만 접근하여 개발하며,
완성되면 Merge 기능을 사용하여 Trunk와 소스를 합치면 된다
용어
Repository
- 파일들이 저장되는 원격 저장소
Revision
- 0부터 1씩 증가하는 유일한 값
- 저장소 내 변경이 발생했을 때 마다 증가한다
- Merge 등을 할 때 기준이 될 수 있다
- 가장 최근의 리비전을 HEAD Revision이라고 한다
Working Copy
- Repository에서 체크아웃을 통해 내려받은 개발자 로컬 PC에 있는 복사본
Checkout
- 원격 저장소(Repository)의 파일을 로컬 저장소(Working Copy)로 내려받는다
Add
- Local 파일을 서브버전이 관리하는 파일로 등록한다
Update
- Local의 파일을 Repository와 비교하여 최신 버전의 상태로 갱신한다
- 동일한 파일을 Repository와 Local 에서 동시에 변경한 경우 서브버전에서 자동으로 Merge 해주지만 서브버전에서 Merge를 할 수 없을 경우 conflict 상태로 변경될 수 있다
Commit
- Local 파일의 변경을 Repository에 저장한다
- 작업이 정상적으로 완료되면 Revision이 증가한다
trunk
- 보통 운영중인 안정화된 버전의 소스가 보관되는 디렉터리
branches
- 주로 신규 기능 개발, 실험적인 작업을 위한 소스가 저장되는 디렉토리
- 작업이 완료되면 trunk 디렉터리로 merge한다
tags
- 특정 시점의 소스를 보관하기 위해 사용되는 디렉토리
- 우리가 소프트웨어 제품 유지보수에서 정기적으로 버전을 릴리즈 한다면 사용할 일이 있겠지만, SM/SI를 하면 사용할 일이 많지 않다
Merge
- branch 로 분리된 source에 대해 각각의 변경 내용을 현재의 작업에 병합하고자 할 때 유용하다
Locking
- 잠금상태
Conflict
- 충돌 상태
이클립스 SVN
Synchronize with Repository(동기화)
- 서버에 있는 소스와 로컬 소스의 싱크를 맞춘다
Commit
- 서버로 나의 로컬 소스를 올리는 작업
Update
- 서버의 소스를 나의 로컬로 옮기는 작업
Override and Commit
- 서버를 무시하고 로컬에 있는 파일을 서버에 덮어쓰는 작업
Override and Update
- 로컬을 무시하고 서버에 있는 파일을 내 로컬로 덮어 쓰는 작업
Show History
- 사람들이 업데이트 한 내역을 확인할 수 있다
어느 부분을 업데이트 했고, 어떻게 했는지 상세하게 확인 가능
Revert
- 현재 작업했던 내용을 취소하고, 서버 소스를 모두 바꾸어준다
SVN 사용법
- 소스를 수정, 커밋하기 전에 우선 업데이트를 받고 작업을 시작해야 한다
- 커밋은 가능한 작은 단위로 자주자주 한다 (출근시 update 퇴근전 Commit)
- 여러 가지 작업을 한 것을 커밋할 일이 있을 때는 최대한 동일한 기능, 같은 성격의 작업끼리 묶어서 커밋해야 한다
#필요한 파일만 커밋
# 커밋 메시지에는 어떤 것을 수정하고 추가했는지 알 수 있도록 작성
ex)
메인화면 로고 이미지 수정
공통코드 작업
엑셀 업로드 다운로드 기능 추가 작업
'Devops > Git & SVN' 카테고리의 다른 글
[Git] git branch 와 주요 명령어 (1) | 2024.08.31 |
---|---|
Git 초기화 하기 (0) | 2024.07.20 |
[Github] 이클립스(Eclips)에서 Git 연결 및 커밋하기 (0) | 2023.08.31 |
Git/GitHub (0) | 2023.02.09 |