포스트

SVN 정리

SVN 정리

VCS 란?

  • 문서나 설계도, 소스 코드 등의 변경 사항, 즉 버전을 관리해주는 소프트웨어이다
  • 버전 관리란 소프트웨어의 변경점을 관리하는 것이다.
  • 이를 지원하는 도구로 Git, SVN, CVS 등이 있다.

VCS 의 장점

  • 변경점 관리
    • 어떤 내용을 누가 작성해서 어느 시점에 들어갔는지 확인할 수 있게 해준다.
  • 버전 관리
    • 특정 시점에 꼬리표(Tag)를 달아 버전을 표시해주고, 브랜치(Branch) 등으로 동시에 여러 버전을 개발할 수 있게 해준다.
  • 백업&복구
    • 무언가가 잘못되었을 때 다시 특정 시점으로 돌아가게 해주고, 사고로 내용이 날아간 경우에도 복구할 수 있게 해준다.
  • 협업
    • 같이 일하는 사람들에게 수정 사항을 쉽게 공유

VCS 종류

로컬 VCS

  • 거의 안쓰는 방식, 단순하고 개인적인 프로젝트에 적합하며 협업에 쓰기 힘들다.

중앙 집중식 VCS

  • 서버에 최종본 한 벌이 있다.
  • 사용자들은 이 중 수정을 원하는 파일만 로컬에 받아 수정한 후 서버에 올리게 된다.
  • 간단한 방법으로 협업이 가능하고 관리자가 누가 어떤 일을 하고 있는지 알기 쉬운 장점이 있다.
  • 단, 중앙 서버가 다운될 경우 그동안은 업무가 마비되는 단점이 있다.
  • 그리고 서버의 정보가 날아갈 경우 모든 히스토리가 날아가게 된다.
  • 협업의 규모가 커지면 수정 충돌 문제 등이 발생할 수 있다.
  • SVN 이 대표적이다.

분산 버전 관리 시스템

  • 파일을 저장하는 서버가 있는 것은 위와 동일하지만 수정을 위해 프로젝트 전체를 로컬 컴퓨터에 다운 받은 뒤 수정한다.
  • 중앙 서버가 다운되더라도 개별 사용자는 각자 작업이 가능하다.
  • 서버가 날아가도 다운 받은 내용은 남아있기 때문에 가장 안정적이다.
  • 수정 시에도 현재 코드는 나 혼자 수정하고 있기 때문에 충돌의 염려 없이 수정할 수 있다.
  • 최종적으로 서버에 반영할 때에만 신경써서 머지(Merge)하면 된다.
  • Git 이 대표적이다.

SVN 명령어 정리

리포지토리에 데이터 가져오기 위한 명령어

  • svn import : SVN 저장소에 새 파일 및 디렉토리를 가져온다
  • svn checkout : 지정된 로컬 경로에 저장소의 소스를 복사한다.

기본적인 작업 순서

  1. svn update : 최신 리비전을 반영한다.
  2. svn add : SVN 버전 관리 대상으로 파일 및 디렉토리를 등록한다
    1. svn status :작업 사본의 상태를 표시한다.
    2. svn diff : 두 파일 버전간의 차이점을 표시한다.
    3. svn patch : 패치를 작업 사본에 적용한다.
  3. svn revert : 실수를 했을 때 파일이나 디렉토리의 변경사항을 되돌린다.
  4. svn resolve : 로컬 충돌이 발생하면 병합 후 충돌을 해결한다.
  5. svn commit : 변경 사항을 리포지토리에 커밋한다.

역사 조사

  1. svn log : 파일이나 디렉토리의 변경 기록을 표시한다.
  2. svn cat : 파일의 내용을 표시한다.
  3. svn annotate : 파일의 각 라인이 마지막으로 수정된 시점과 수정한 사용자를 보여주는 명령어이다.
  4. svn list : 디렉토리의 내용을 나열한다.

출처

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.