Subversion 이란?
-버전 관리 시스템의 한 종류이다.
-SVN이라고 줄여서 부르기도 한다.
-서버 + 클라이언트 모델을 따른다.
-Git을 사용해봤다면 같은 종류의 소프트웨어라고 생각하면 된다.
Subversion 클라이언트
-Command Line으로도 조작 가능
-Tortoise SVN : 가장 많이 사용되는 클라이언트
-Subversive SVN Team Provider : 이클립스 플러그인으로 제공됨
Subversion 서버
-사내 서버에 설치되어 있다. 사내 인프라 담당자가 관리하고 있다.
-URL : http://svn.bserver.co.kr/svn/{프로젝트명}
용어
Repository
-파일들이 저장되는 원격 저장소
Revision
-0부터 1씩 증가하는 유일할 값
-저장소 내 변경이 발생했을 때마다 증가
-Merge 등을 할 때 기준이 될 수 있음
-가장 최근의 리비전을 HEAD Revison이라고 함
Working Copy
-Repository에서 체크아웃을 통해 내려받은 개발자 로컬 PC에 있는 복사본
Checkout
-원격 저장소(Repository)의 파일을 로컬 저장소(Working Copy)로 내려받는다.
Add
-Local 파일을 서브버전이 관리하는 파일로 등록한다.
Update
-Local의 파일을 Repository와 비교하여 최신 버전의 상태로 갱신한다.
-동일한 파일을 Repository와 Local에서 동시에 변경한 경우 서브버전에서
자동으로 Merge 해주지만(서브버전은 똑똑하다)
서브버전에서 Merge를 할 수 없을 경우 Conflict상태로 변경될 수 있다.
-충돌이 발생하면 사용자에게 Merge 작업을 위임한다. (사용자가 직접 해야 한다.)
Commit
-Local 파일의 변경을 Repository에 저장한다.
-작업이 정상적으로 완료되면 Revision이 증가한다.
trunk
-보통 운영 중인 안정화된 버전의 소스가 보관되는 디렉터리
branches
-주로 신규 기능 개발, 실험적인 작업을 위한 소스가 저장되는 디렉터리
-보통 작업이 완료되면 trunk 디렉터리로 병합한다.
tags
-특정 시점의 소스를 보관하기 위해 사용되는 디렉토리
-우리가 소프트웨어 제품 유지보수에서 정기적으로 버전을 릴리즈 한다면 사용할 일이 있겠지만,
SM/SI를 하면 사용할 일이 많지는 않다.
Merge(병합)
-branch로 분리된 source에 대해 각각의 변경 내용을 현재의 작업에 병합하고자 할 때 유용하다.
Locking
-잠금
Conflict
-충돌
<이클립스 SVN>
Synchronize with Repository(동기화)
-서버에 있는 소스와 로컬 소스의 싱크를 맞춤
Override and Commit
-서버를 무시하고 로컬에 있는 파일을 서버에 덮어쓰는 작업
Commit
-서버로 나의 로컬 소스를 올리는 작업
Update
-서버의 소스를 나의 로컬로 옮기는 작업
Override and Update
-로컬을 무시하고 서버에 있는 파일을 내 로컬로 덮어 쓰는 작업
Show History
-사람들이 업데이트 한 내역을 확인할 수 있습니다.
어느 부분을 업데이트했고, 어떻게 했는지 상세하게 확인 가능합니다.
Revert
-현재 작업했던 내용을 취소하고, 서버 소스로 모두 바꾸어줍니다.
사용법 (협업시 잘지켜주셔야 협업이 잘됩니다 ㅠㅠㅠㅠ)
-소스를 수정, 커밋하기 전에 우선 업데이트를 받고 작업을 시작해주세요.
-커밋은 가능한 작은 단위로 자주자주 해주세요.
-여러 가지 작업을 하신 것을 커밋할 일이 있을 때는 최대한 동일한 기능, 같은 성격의 작업끼리
묶어서 커밋해주세요.
필요한 파일만 커밋해주세요.
-ex) 불필요 한 파일 : 개발 툴에서 생성하는 임시 파일들, 소스가 컴파일된 파일들, 로그 파일 등
커밋 메시지에는 어떤 것을 수정하고 추가했는지 알 수 있도록 작성해주세요.
-ex) 메인 화면 로고 이미지 수정
-ex) 결제 기능 추가
-ex) 엑셀 업로드, 다운로드 기능 추가
'개발 > 개발에 관련된 정보' 카테고리의 다른 글
Visual Studio Code에서 C/C++ 빌드 및 실행, 비쥬얼 스튜디오 코드에서 C/C++실행 및 빌드하기 !! (0) | 2022.10.28 |
---|---|
APi, 라이브러리, 프레임워크의 차이~!! 한방정리 (0) | 2022.10.28 |
Eclipse, 이클립스 설치방법, 간단설치~! 나도 자바하자~! (0) | 2022.10.28 |
java 개발전에 JDK부터 설치하자~! JDK 1.8 설치, 환경변수 설정~! (0) | 2022.10.28 |
프로토콜(Protocol) 이란?? 프로토콜의 간단 정리~!! (0) | 2022.10.28 |
댓글