소스 버전 관리툴인 SVN을 사용하는 방법

Subversion

Subversion은 소스 버전 관리 도구이다. 각종 편집기의 플러그인을 이용하시거나 윈도 환경에서 TortoiseSVN 등을 이용하면 쉽게 이용하실 수 있다. TortoiseSVN 등을 이용한다면 용어 설명을 이해하고, 다른 작업들은 제공되는 메뉴와 인터페이스를 보고 적절히 적용하면 된다.

  • 체크아웃 - 최초에 저장소에서 로컬로 파일을 가져오는 것을의미함. 이 때 파일만 가져오는 것이 아니라 저장소의 위치 정보나 이런것들도 다 함께 가져온다. 그렇기 때문에 체크아웃을 한이후에 업데이트나 커밋을 할 때에는 저장소의 위치를 계속해서 다시 써 줄필요가 없다. 그러나 당연히 체크아웃을 할 때에는저장소의 위치를 써 주어야 한다.
  • 업데이트 - 현재 로컬에 있는 파일들보다 더 최신의 파일이저장소에 있다면 가져와서 적용시켜주는 것. svn up 이라고 치면 현재 디렉토리 아래에 있는 것을 모두 업데이트 한다.
  • 커밋 - 바꾼 부분이 있다면 커밋을 하면 된다. 현재 디렉토리와 그 아래에 있는 파일들을 저장소에 적용시킨다. 가능하면 -m 옵션을 이용하여 짤막한 커밋 메시지를 남겨준다.
  • PROJECTNAME은 각각의 프로젝트 이름을 의미한다.

체크 아웃 방법

현재 권장 체크아웃 방식은 svn+ssh 방식이다. https를 올린 다음 아파치 인증 체크 아웃을 쓰는 것이 더 편리한 방법이니 조만간에 이것으로 바꾸는 것이 좋을 것이다.


로컬 체크 아웃

svn checkout file:///var/svn/PROJECTNAME

svn+ssh 체크 아웃

svn을 ssh로 터널링하는 방법이다. 패스워드는 시스템 계정을 써야 한다. 현재 사용하는 계정의 이름과 개발 서버 계정의 이름이 다르다면 다음과 같은 형태로 접근하여야 한다.

svn co svn+ssh://username@xx.co.kr/var/svn/PROJECTNAME

패스워드는 3번 정도 물어보는데 틀린 것이 아니니 계속 같은 패스워드를 입력해 준다.


파일을 추가하거나 커밋하는 방법

체크아웃을 한번 하고 나면 저장소의 주소가 설정으로 저장되므로, 다시 쓰지 않아도 된다. 현재 저장소의 상태를 보려면

svn status

를 하면 추가될 파일, 저장소에 없는 파일, 수정된 파일, 충돌이 일어난 파일 등이 표시된다. 저장소에 파일을 추가할 때에는

svn add files

를 쓰면 되고, 커밋을 할 때에는

svn ci -m '메시지'

를 쓰면 된다. 메시지에는 커밋할 때 변경한 것을 간략하게 요약해서 써 준다. 아울러 커밋하기 전에 제대로 동작하는 소스인지를 반드시 확인하여야 한다.

새로운 브랜치를 만드는 방법

svn copy SRC DST

를 사용하면 된다. svn copy 는 local 내용 외에도 URL 에 있는 내용으로부터 복사를 할 수도 있다. svn copy의 주 용도는 새로운 branch 또는 tag를 만들기 위함이다. 이것은 OS에 있는 복사의 기능과 같은 역할을 하지만 저장소에 물려 있는 파일들을 복사할 때 단순히 디렉토리를 복사하면 안 된다. .svn 디렉토리는 특별하게 취급되는 것이니 복사하면 안 되며, svn copy로 복사하면 로그가 복사한 것으로 남지만 OS에서 복사한 뒤 add하면 새로운 파일을 추가한 것으로 로그가 남기 때문에 분명히 차이가 있다.


저장소 디렉토리 구조

svn에서 커밋을 하면 다음과 같은 디렉토리가 있다. 각각의 디렉토리에 대하여 간단히 설명한다. 꼭 이대로 할 필요는 없지만 이렇게 하는 것이 가장 좋을 것 같아서 가이드를 정한다.

  • trunk - 프로젝트의 줄기 부분이다. 여기에 메인 프로젝트 파일들이 들어간다. 밑에 여러 디렉토리가 들어갈 수 있다.
  • branch - 프로젝트의 가지 부분이다. 주류와 다르게 특별한기능을 넣고 싶거나 한 경우가 생기면 trunk에서 이곳으로옮겨서 작업하거나 이곳에 새로 작성하여도 된다. branch가성공적이면 나중에 trunk에 합쳐 넣기도 한다.
  • tags - trunk는 계속적으로 작업이 지속되는 공간이다. 특정 시점에서 보관을 하고 싶다면 trunk에서 이곳으로 옮겨놓을 수 있다. tags 밑에 릴리즈 버전을 붙여서 넣어두거나 하면 된다.

svn 에디터 설정

기본으로 아마 nano 에디터가 되어 있을 텐데 vim으로 변경하려면 환경 변수를 바꿔주면 된다.

export SVN_EDITOR=/usr/bin/vim

환경 설정 파일등에서 SVN_EDITOR 변수를 설정하면 된다.


by redrails | 2007/11/21 11:13 | 트랙백 | 덧글(0)

트랙백 주소 : http://redrails.egloos.com/tb/1025546
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지 다음 페이지 ▶