svn이란 SubVersion의 줄임말 협업을 위해 사용
사용목적: 여러명이서 작업하는 프로젝트의 경우 버전관리나 각자 만든 소스의 통합과 같은 문제를 해결하기 위해 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 것
하나의 서버에서 소스를 쉽고 유용하게 관리할수 있게 도와주는 툴
프로젝트 소스는 SVN서버의 Trunk라는 곳에 위치 자신의 Local에 Trunk의 소스를 받아(update)수정 및 추가 후 다시 업로드(commit)하는 방식
자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch(원 소스의 나뭇가지)를 만들어 작업 후 자기자신만 접근하여 개발하며 완성되면 Merge 기능을 사용하여 Trunk와 소스를 합치면 된다
버전관리의 목적
작업 이력 관리 , 문제파악 , 예전 버전의 파일복원 , 수정한 부분 검증 , 협업 지원
버전관리 툴 용어
Repository:프로젝트 파일 및 변경 정보가 저장되는장소
Import:빈 Repository에 맨 처음 파일들을 채우는것
Export:버전 관리 파일들을 뺀 순수 파일만 빼내는 것
Checkout:저장소에서 최신버전의 소스코드를 최초로 받아노는것/ Repository에서 프로젝트 관련 파일들을 받아온다.
Update:로컬 저장소에 있는 파일들을 저장소의 최신버전으로 받아오기
Commit:로컬 저장소의 변경된 내용을 서버로 전송 / Checkout한 파일의 수정사항을 갱신
Revert:로컬 저장소의 내용을 이전 상태로 돌림
Add:버전관리 대상으로 파일등록
Trunk:개발소스를 commit 했을때 개발 소스가 모이는 곳 / 프로젝트에서 가장 중심이 되는 디렉토리 , 소스와 파일포함
Branch:trunk에서 분리/복사한 소스를 버전별 배포판을 만들거나 trunk와 별도로 운영환경을 위한 안정화된 소스 관리 목적으로 사용
Tag:특정 시점의 상태 보존 목적으로 사용 장기적으로 1.0 , 1.1 등 버전 별로 소스 코드를 따로 저장 특정 시점에서 프로젝트의 스냅샷을 찍어두는것
svn | git | |
사용법 |
간편하고 어렵지않다
|
다소 복잡하고 초보자가 이해하기 어렵다
|
기능 |
버전관리에 최적화된 간편한 기능
|
다양한 기능이 존재, 이런기능이 있어?라고 할정도로 버전관리에 필요한 모든기능이 존재함
|
프로세스 | 중앙 집중식 | 분산 관리식 |
소스충돌위험 | 매우높음 |
권한 설정을 통해 충돌 위험 감소
|
저장소 백업 여부 |
저장소 백업이 용이하지 못함
|
깃 저장소만 있으면 리모트 복구 언제든지 가능 매우용이
|
다수 작업관리 |
관리에 한계가 존재
|
수백~수천의 프로그래머의 분산 작업에 매우 용이
|
작업 내용 복구 | 다소 불편함 |
예전 리비전으로 복구가 매우편리
|
브렌치 생성 | 다소 불편함 |
로컬에서 브렌치 생성 및 태그 생성이 매우 편리하다.
|
'ETC' 카테고리의 다른 글
시큐어 코딩 이슈 정리 (0) | 2024.12.04 |
---|---|
쿠버네티스 란? (0) | 2023.11.13 |
Jenkins란? (0) | 2023.11.13 |
아파치,톰캣,메이븐,폼 (0) | 2023.11.13 |
HTTP 응답상태 코드 정리 (0) | 2023.11.13 |