본문 바로가기

도구의발견

SVN 사용하기

팀에서는 소스세이프를 쓰지만 개인적으로는 서브버젼을 사용해보기로 마음먹었습니다.
매번 저장소를 만들 때 마다 메뉴얼을 살펴 봐야 해서 간단하게나마 블로그에 요약 합니다.

1. Repository 생성하기
저장소는 각 프로젝트 마다 하나씩 존재 해야 합니다.
저장소를 생성 할 때는 svnadmin을 사용 합니다.

$ svnadmin create --fs-type bdb /home/kukuta/SVN/sample

--fs-type은 파일 시스템을 지정합니다. 일반 적인 파일 시스템을 사용하려면 'fsfs', 버클리DB를 사용 할 경우에는 bdb를 지정합니다. 지정하지 않으면 디폴트로 셋팅 됩니다.
자세한 사항은 'svnadmin help create'를 하시면 create에 대한 보다 상세한 정보를 얻을 수 있습니다.
버클리DB로 파일을 저장하는 repository를 '/home/kukuta/SVN/sample' 에 생성하였습니다.

2. Repository 설정하기
위의 과정에서 생성 된 '/home/kukuta/SVN/sample' 디렉토리가 정상적으로 생성되었다고 가정하고 설명을 시작하도록 하겠습니다.
해당 디렉토리를 살펴 보면 README.txt, conf, dav, db, format, hooks, locks 등의 파일과 디렉토리가 생성되어 있음을 확인 할 수 있습니다.
'sample/conf/svnserv.conf' 파일을 편집기로 열면 모든 텍스트가 주석 처리 되어 있음을 볼 수 있습니다.
2.1 'general' section
접근 권한을 설정하는 섹션 입니다.
[general]이라는 라벨을 사용하여 섹션의 시작을 나타 냅니다.
anon-access(익명사용자), auth-access(실명사용자)에 대한 권한을 설정 할 수 있습니다.

[general]
anon-access = read #인증 되지 않은 유저는 
auth-access = write
password-db = /var/svn/conf/passwd # 파일을 열어 보면 유저들의 패스워드가 적혀 있다.
authz-db = /var/svn/conf/authz # 파일을 열어 보면 유저들의 접속 가능 유저 리스트가 있다

필자는 익명 접근, 실명 접근 모두 저장소에 읽고 쓸수 있는 권한을 부여 했습니다. 만일 익명에게는 읽기 권한만 인증된 사용자에게는 읽기/쓰기를 모두 허용하고 싶다면 read를 적어 주면 됩니다.
계정과 패스워드, 권한을 부여하고 싶다면 password-db와 authz-db에 해당 정보가 기록된 파일 경로를 적어 주면 됩니다.

3. 저장소에 소스 업로드 하기 - import

#svn import localdirectorypath svn://subversion.ip.or.domain/sample/

import를 사용하는 경우에는 디렉토리 이름을 적어 줄것. 파일하나씩 올리는 것은 안됨

4. 저장소에서 소스 다운로드 하기 - checkout

#svn checkout localdirectorypath svn://subversion.ip.or.domain/sample/

5. 로컬 소스를 업데이트 하기 - update
소스를 다운 받았던 디렉토리에서 실행해야만 합니다.

#svn update

6. commit
#svn commit


유익한 글이었다면 공감(❤) 버튼 꾹!! 추가 문의 사항은 댓글로!!