svn... 낯설다 너
아무래도 공부할때나 실제 프로젝트에서도 전부 git만 사용하다보니 다른 소스 관리 툴은 사용해본적이 없는데
요즘 일하는 곳에서는 svn을 사용하더라
사실 뭔지 아예몰랐...
SubVersion : 중앙집중관리식 형상관리 소스 관리 툴
중앙 서버에서 모든 변경 관리되는 중앙 집중식 관리 툴인데...
분산형인 git과는 많은 차이가 있다.
| 항목 | Git | SVN (Subversion) |
|---|---|---|
| 저장소 방식 | 분산형 (Distributed) | 중앙집중형 (Centralized) |
| 작업 방식 | 로컬 저장소에서 작업 후 푸시(Push) | 중앙 서버에서 작업 후 커밋(Commit) |
| 이력 관리 | 각 로컬 저장소가 전체 이력 관리 | 중앙 서버에만 이력 저장 |
| 브랜치 관리 | 브랜치 생성 및 삭제가 매우 빠르고 가벼움 | 브랜치 관리가 복잡하고 느릴 수 있음 |
| 네트워크 의존성 | 네트워크 없이 로컬에서 작업 가능 | 작업 시 항상 네트워크 연결 필요 |
| 성능 | 로컬에서 작업하므로 빠름 | 네트워크 연결이 필요하여 상대적으로 느림 |
| 커밋 | 커밋은 로컬에서 이루어지고 나중에 푸시 | 커밋은 중앙 서버로 바로 반영됨 |
| 분산 작업 | 각 개발자가 로컬 저장소를 가지므로 독립적 | 모든 개발자가 중앙 저장소에 의존 |
| 기록 관리 | 전체 커밋 히스토리를 로컬에서 관리 | 서버에만 커밋 히스토리가 남음 |
아무래도 git이 대세다 보니 대부분은 git을 사용하지만
우리 회사처럼 svn을 여전히 사용하는 회사들도 아예 없지는 않다는 점
그래서 간단하게 brew로 설치하고 cli사용하는 법까지!
# brew로 svn 설치하기
brew install svn
# 설치됐는지 확인 (버전 확인)
svn --version
# checkout 하기(git clone 같은거)
svn checkout --username 아이디 --password 비번 url주소
# update 하기
기본(전체) : svn update
폴더 : svn update 폴더명
파일 : svn update 파일명
# 비정상 종료시 해결방법 -> checkout이나 update가 안될때
svn cleanup /파일경로
ex) svn cleanup /Users/user/폴더명