레이블이 소스형상관리인 게시물을 표시합니다. 모든 게시물 표시
레이블이 소스형상관리인 게시물을 표시합니다. 모든 게시물 표시

2012-10-14

Subversion dump/load 방법(버전업 관련)




출처 : http://hanavy.egloos.com/256959



Subversion dump/load 방법(버전업 관련)

Subversion을 계속 1.4 버전대를 쓰다가 1.5 버전이 나온걸 보고 이동하려고 했다.

그런데 개인적으로는 주로 bdb 버전을 쓰고 있는데 일반적으로 공식버전으로 보는 CollabNet의 Binary는 더이상 bdb를 지원하지 않고 fsfs 만을 지원하기로 한 듯 하다.
예전부터 의견들을 살펴보면 bdb 는 DB 오류가 많이 발생하여 점점 쓰는 사람들이 줄어드는 추세인 듯 하기는 한데..
어차피 아직까지 개인적으로 사용하는데 아직까진 별 문제가 없기도 하고 일단은 내가 문제를 겪기 전에는 bdb로 하려고 하니(업로드 하는 파일별로 줄줄히 생성하는게 갠적으로 맘에 안들기도 하여...) CollabNet은 쓸 수가 없었다.
그렇다고 하여 소스를 다 받아서 build 하자니 자바 개발만 주로 하는지라 windows 빌드 하기도 만만치 않을듯 하고..
하던 차에 혹시나 그 밑에 나온 SlikSVN을 보니 bdb를 지원하는 듯 하여 이걸로 받았다.

기존 쓰던 놈들 백업하고 갠적인 취향으로 인스톨을 싫어하는지라 uniExtract로 풀어서 복사한 다음 돌리니 잘 되는 듯 하다가 기존 bdb 소스를 받을 때 svnserve가 죽는 증상이 발생했다.
귀찮아서 dump/load를 안했더니 그 문제인듯 하여 dump/load 방법을 찾아본 후 그 내용을 정리한다.

1. svnserve나 apache 등의 서비스 제공자를 다 종료한다. 덤프중에 누가 접근하면 곤란하겠지..

2. svnadmin dump /path/to/repository > dumpfile.txt 명령으로 dumpfile.txt 파일로 덤프를 받는다.
물론 덤프받는 파일명이야 자기 맘대로 설정.
혹시나 몰라 /path/to/repository라는건 서버상의 실제 경로이다.
예를들어 이번에 나 같은 경우는 svnadmin dump E:/Repository/SVN/ows 라는 경로에 있는 내용을 덤프받았다.

3. 기존 repository 경로를 다른 이름으로 변경한다. 일종의 백업.

4. Subversion을 업그레이드 한다. 충돌할 수도 있으니 기존 내용은 삭제를 하고 완전히 새로 설치하도록 한다.

5. svnadmin 명령으로 새 repository 를 생성한다.
svnadmin create /path/to/repository

6. 역시 svnadmin 명령으로 아까전에 받은 파일을 로드한다.
svnadmin load /path/to/repository < dumpfile.txt

7. 기존 repository에 있는 hook scripts나 기타 등등을 새 repository 로 복사한다.
나도 많이 써보지는 않아서 hook script라는게 뭘 의미하는지 확실히는 모르겠는데 나 같은 경우는 권한 등이 저장되는 conf 폴더를 다시 복사해 놨다.

8. 종료. 다시 서버를 기동하고 제대로 작동하는지 확인한다.

2012-08-29

centos]CentOS 5.0에 subversion/svn 설치


출처 : http://tykim.wordpress.com/2007/06/04/centos-50%ec%97%90-subversionsvn-%ec%84%a4%ec%b9%98/

 

CentOS 5.0에 subversion/svn 설치

Filed under: System GuruIT — Peter Kim @
CentOS (RHEL 5.0)에 Subversion 1.4.3의 설치 Know-How를 공유한다.
대표적인 형상관리 서버로 CVS/CVSNT, Subversion등이 있다.
우선 순서는
  1) Subversion 설치
  2) Repository 생성
  3) Daemon 설정
  4) Client 사용
  5) 활용
으로 설명하려 한다.
1. 설치
    yum으로 의외로 쉽게 설치된다.
    #yum install subversion
    기본적으로 이렇게 설치하면 File System으로 관리할 수 있는 기본 패키지가 설치된다.
    Subversion으로 repository관리는 두가지로 File System 및 Berkeley DB를 선택 사용할 수 있다.
    Berkely DB를 사용하기 위해서는 http://www.oracle.com/technology/software/products/berkeley-db/db/index.html
에 서 설치하고 쓸 수 있는데.. 이곳저곳에서 관리 파일 용량이 많아지면 문제가 있다는 report가 있어 안전하고 
직관적(실제 물리적 foder/file구조로 관리할 수 있게끔 file system 방식으로만 쓰고자 한다.
2. Repository 생성
   1) Repository 생성
      우선 Root Repository를 생성해야 한다. (이유: 3.1) 참조)
      #mkdir /data1/svn
      #cd /data1/svn
      #svnadmin create –fs-type fsfs project
      이렇게하면 /data1/svn에 project directory 및 기본적으로 하위 디렉토리들이 만들어 진다.
      인증/보안을 위한 몇가지 옵션을 설정해 주어야 한다.
   2) 기본적인 환경 설정
       #vi /data1/svn/project/conf/svnserve.conf
            [general]
            anon-access = none
            auth-access = write
            password-db = passwd
            기본적으로 anonymous access 불가, 인증 성공한 사람만 write권한, 인증방식은 passwd 파일 방식


       #vi /data1/svn/project/conf/passwd

       [users]
        userid1=password1
        userid2=password2
       접속을 허용할 userid 및 password를 기재해주면 된다.


3. Daemon 설정
   기 제작한 project repository에 대한 file-system으로의 생성, 인증, password의 본적은 환경 설정은 마쳤고, 
   이제 subversion daemon을 실행하기 위한  시스템 환경 설정이 남았다.
   1) 환경 설정
       #vi /etc/rc.d/init.d/subversion 을 열어 17 줄의 SYSCONFIG 내용을 확인한다.
       SYSCONFIG=”/etc/sysconfig/subversion”
       #vi /etc/sysconfig/subversion
         OPTIONS=”–threads –root /data1/svn”
         이렇게 하여 svn의 root repository directory를 설정해 준다.
   2) 시스템 가동
        #/etc/rc.d/init.d/subversion start
       이렇게 하면 subversion이 daemon으로 동작하게 된다.
       환경 변수를 바꾸고 subversion을 restart해야한다면
        #/etc/rc.d/init.d/subversion restart
   3) Booting시 자동 실행
        #vi /etc/inittab
        우선 서버의 실행 Level을 확인해야 하는데  /etc/inittab의 18번째 줄 내용을 확인한다.
        id:5:initdefault:
        본 id와 initdefault사이의 값인 5값을 확인한다. (X11로 booting한다는 의미)
        #cd /etc/rc5.d
        #vi S99local
         /etc/rc.d/init.d/subversion start &  <== 데몬서비스로 실행.
        적당한 줄에 상기 내용을 추가한다.

4. Client 사용
    - http://blog.empas.com/mcchae/19118563 에 워낙 잘 설명이 되어 있어서 pass
5. 활용
    - 전체적으로 subversion으로 여러 사람의 협업을 통해 소스 형상 관리 및 Binary 관리등을 관리해야 하고, 
      프로젝트별 권한, Backup 및 Restore, 관리자 통계(오늘 어떤 파일/내용이 수정되었고, 누가 올렸고.. 등등) 
      여러가지  Tunning작업을 해야한다.
    - IT Project에서는 trac을 많이 쓰고 있고, 비슷한 형태로 http://oss.segetech.com/bugzilla-svn-wiki.html을 
      참고해도 될 것 같다.