SVN 정리
SVN 정리
VCS 란?
- 문서나 설계도, 소스 코드 등의 변경 사항, 즉 버전을 관리해주는 소프트웨어이다
- 버전 관리란 소프트웨어의 변경점을 관리하는 것이다.
- 이를 지원하는 도구로 Git, SVN, CVS 등이 있다.
VCS 의 장점
- 변경점 관리
- 어떤 내용을 누가 작성해서 어느 시점에 들어갔는지 확인할 수 있게 해준다.
- 버전 관리
- 특정 시점에 꼬리표(Tag)를 달아 버전을 표시해주고, 브랜치(Branch) 등으로 동시에 여러 버전을 개발할 수 있게 해준다.
- 백업&복구
- 무언가가 잘못되었을 때 다시 특정 시점으로 돌아가게 해주고, 사고로 내용이 날아간 경우에도 복구할 수 있게 해준다.
- 협업
- 같이 일하는 사람들에게 수정 사항을 쉽게 공유
VCS 종류
로컬 VCS
- 거의 안쓰는 방식, 단순하고 개인적인 프로젝트에 적합하며 협업에 쓰기 힘들다.
중앙 집중식 VCS
- 서버에 최종본 한 벌이 있다.
- 사용자들은 이 중 수정을 원하는 파일만 로컬에 받아 수정한 후 서버에 올리게 된다.
- 간단한 방법으로 협업이 가능하고 관리자가 누가 어떤 일을 하고 있는지 알기 쉬운 장점이 있다.
- 단, 중앙 서버가 다운될 경우 그동안은 업무가 마비되는 단점이 있다.
- 그리고 서버의 정보가 날아갈 경우 모든 히스토리가 날아가게 된다.
- 협업의 규모가 커지면 수정 충돌 문제 등이 발생할 수 있다.
- SVN 이 대표적이다.
분산 버전 관리 시스템
- 파일을 저장하는 서버가 있는 것은 위와 동일하지만 수정을 위해 프로젝트 전체를 로컬 컴퓨터에 다운 받은 뒤 수정한다.
- 중앙 서버가 다운되더라도 개별 사용자는 각자 작업이 가능하다.
- 서버가 날아가도 다운 받은 내용은 남아있기 때문에 가장 안정적이다.
- 수정 시에도 현재 코드는 나 혼자 수정하고 있기 때문에 충돌의 염려 없이 수정할 수 있다.
- 최종적으로 서버에 반영할 때에만 신경써서 머지(Merge)하면 된다.
- Git 이 대표적이다.
SVN 명령어 정리
리포지토리에 데이터 가져오기 위한 명령어
- svn import : SVN 저장소에 새 파일 및 디렉토리를 가져온다
- svn checkout : 지정된 로컬 경로에 저장소의 소스를 복사한다.
기본적인 작업 순서
- svn update : 최신 리비전을 반영한다.
- svn add : SVN 버전 관리 대상으로 파일 및 디렉토리를 등록한다
- svn status :작업 사본의 상태를 표시한다.
- svn diff : 두 파일 버전간의 차이점을 표시한다.
- svn patch : 패치를 작업 사본에 적용한다.
- svn revert : 실수를 했을 때 파일이나 디렉토리의 변경사항을 되돌린다.
- svn resolve : 로컬 충돌이 발생하면 병합 후 충돌을 해결한다.
- svn commit : 변경 사항을 리포지토리에 커밋한다.
역사 조사
- svn log : 파일이나 디렉토리의 변경 기록을 표시한다.
- svn cat : 파일의 내용을 표시한다.
- svn annotate : 파일의 각 라인이 마지막으로 수정된 시점과 수정한 사용자를 보여주는 명령어이다.
- svn list : 디렉토리의 내용을 나열한다.
출처
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.