델리마운트 위키

서브버전 #

서브버전(Subversion)은 CVS의 단점을 보완한 버전 관리(version control) 시스템입니다. 저희 팀은 서버 내 저장소의 루트 위치를 /var/svn/ 으로 하였습니다.

svn+ssh #

저장소 접근 방법 변경시 주의할 점 #

접근 방법 변경시, 기존 접근 방법의 처리를 잊지 말 것. 예를 들어 svnserve를 부팅 스크립트에서 실행치 않도록 한다던지...

저장소 만들기 #

  • sudo svnadmin create /path/to/repositary로 저장소 생성
  • sudo chgrp -R group_name /path/to/repositary로 그룹 권한 설정
  • sudo chmod -R 770 /path/to/repositary로 접근 권한 설정
  • sudo chmod -R g+s /path/to/repositary/db 로 스틱키 비트 설정 (스틱키 비트가 설정되야 하는 이유는, db 폴더에 작업되는 파일의 소유 그룹이 작업한 사용자에 관계없이 group_name으로 설정되도록 하기 위해서이고, 이 때 재귀적으로 설정하는 이유는 서브 디렉터리에도 같은 설정이 적용되어야 하기 때문.)

체크아웃 #

  • 허용된 사용자로 체크아웃 해야 함.
  • svn checkout svn+ssh://user_name@address/path/to/repositary/ : 사용자 이름을 user_name으로 하여 체크아웃 시도.

가지를 줄기에 병합하기 #

저장소 관리 #

방법은 아래와 같으며, 자세한 설명이 필요한 경우에는 서브버전을 이용한 실용적인 버전 관리 p175를 참고하세요.
  • 백업 - sudo svnadmin dump /path/to/repositary/ > dump_file_name
  • 복원 -
    sudo svnadmin create /path/to/new_repositary/
    sudo svnadmin load /path/to/new_repositary/ < dump_file_name


이용 규칙 #

  • 파일 이름 변경 및 이동하는 경우 변경 전에 반드시 커밋한 후 변경 후에 새로 커밋을 한다. (이는 파일 내용 변경과 구분하기 위함입니다)

이름 규칙 #

  1. 저장소, 디렉토리, 파일 이름의 시작은 대문자로 합니다.
  2. 이름이 2개 이상의 단어로 구성되는 경우 단어의 시작은 대문자로 합니다.
  3. 축약어인 경우 첫글자만 대문자로 합니다.
  4. trunk, branches(가지), tags(꼬리표), vendor, src, doc, lib
  5. 릴리스 가지(RB-), 릴리즈(REL-), 버그 교정 가지(BUG-), 버그 교정 이전(PRE-), 버그 교정 이후(POST-), 개발자 실험(TRY-)
  6. 릴리스 폴더는 릴리스 번호를 그래도 붙여줍니다. (예, REL-1.0.1a)

저장소 구조 #

일반 프로젝트 #

Easikin
  └ trunk
      └ src
          └ vendor

Common 저장소 #

Common
  └ vendor
      └ Mootools
          └ trunk
              └ src
                  └ mootools
                  └ test

무시 목록 #

서브버전의 저장소에 프로젝트의 모든 파일 저장할 필요는 없습니다. 예를 들어, 실행 파일은 소스 파일에 의해 만들어진(build) 파일입니다. 소스 파일만 있으면 언제든지 다시 만들 수 있습니다. 오히려 소스 파일과 중복되기 때문에 저장소가 비대해져 관리가 비효율적입니다. 이와 같이 로컬 디렉토리에는 존재하지만, 서브버전의 저장소에 제외된 목록을 무시 목록(ignore list)라고 합니다. 무시 목록으로 등록된 파일과 디렉토리는 저장소로 커밋되지 않습니다.

해당 파일 또는 디렉토리를 무시 목록에 추가하려면 다음과 같이 진행합니다. (톨토이스를 기준으로 설명합니다.)
  1. 윈도우 탐색기에서 대상 파일 또는 디렉토리를 우클릭 한 후, TortoiseSVN > 무시 목록에 추가를 선택합니다.
  2. 해당 파일만 추가할 것인지 또는 해당 파일과 동일한 확장자를 가진 모든 파일을 추가할지 선택합니다.
무시 목록을 확인하려면, 디렉토리를 우클릭 한 후 TortoiseSVN > 속성을 선택하면 속성 창에서 확인할 수 있습니다.

유용한 서브버전 툴 #

  • 톨토이즈(TortoiseSVN) - 윈도우 탐색기에서 편리하게 사용할 수 있는 서브버전 클라이언트 입니다.
  • [http]AnkhSVN - Visual Studio .NET의 플러그인으로서 IDE에서 바로 제어되는 서브버전 클라이언트 입니다. 편리한 면에서 장점이 있으나, Express 버전의 Visual Studio를 지원하지 않습니다.

비주얼 C++ 2005 솔루션과 서브버전 #

비주얼 C++ 2005 솔루션을 서브버전에 저장할 때 관리의 효율을 위해서 아래의 파일을 무시 목록에 추가합니다.
  • 솔루션 폴더 내의 debug, release 폴더
  • 솔루션 폴더 내의 *.ncb 파일
  • 솔루션 폴더 내의 *.suo 파일
  • 각 프로젝트 폴더 내의 Debug, Release 폴더
  • 각 프로젝트 폴더 내의 *.user 파일
만약 프로젝트에서 미리 컴파일된 헤더를 이용한다면, 로컬 디렉토리를 업데이트할 때마다 미리 컴파일된 헤더를 만들어 줘야 합니다. 미리 컴파일된 헤더 만들기에 대한 자세한 내용은 미리 컴파일된 헤더에서 확인할 수 있습니다. 매번 미리 컴파일된 헤더 만들기가 귀찮다면, 일련의 과정을 자동화하도록 합니다.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-09-04 15:45:01
Processing time 0.0404 sec