본문 바로가기
ETC

svn,git의 차이

by brilliant-growth 2024. 7. 1.

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