본문 바로가기

SCM/SVN

05. SVN 리눅스에 구축

SVN Repository 및 Server 설정
 
# SVN Editor 설정
 
      vi ~/.bash_profile
            export SVN_EDITOR=/usr/bin/vim
            source /etc/profile
 
# 폴더 생성
 
     sudo mkdir /var/repos
 
# Repository 생성
     
     파일시스템을 이용한 방식
     sudo svnadmin create --fs-type fsfs /var/repos
 
     버클리 DB 를 이용한 방식
     sudo svnadmin create --fs-type bdb /var/repos
 
# 디렉토리 그룹 권한을 변경
 
     sudo chmod -R g+w /var/repos
 
# SVN 설정 변경
 
     sudo vi /var/repos/conf/svnserve.conf
password-db = passwd #인증에 사용할 패스원드 설정 파일
anon-access = read # 익명 사용자 읽기 권한
auto-access = write # 등록된 사용자 쓰기 권한
 
     sudo vi /var/repos/conf/passwd
      kin3303 = 11111 과 같이 user = password 형식으로 입력후 저장
 
# SVN Repository 접근방식 설정
 
      svn 서버 실행
    sudo svnserve -d -r /var/repos
-d : 데몬모드 실행
-r : repository 지정
 /etc/rc.d/rc.local 에 위 내용을 적어놓고 저장하면 리눅스 부팅시 자동실행 됨
 
      3690 포트 확인
     netstat -na | grep 3690
 
#  Repository 에 trunk, branch, tags 생성
 
sudo svn mkdir svn://localhost/trunk --username kin3303
sudo svn mkdir svn://localhost/branches --username kin3303
sudo svn mkdir svn://localhost/tags --username kin3303
 
위 명령을 치면 vim 에디터가 자동실행되며
:q 를 누르고 (c)ontinue 를 입력해 빠져나오면
아래 화면이 나오며 이때 암호를 입력
 
Authentication realm: <svn://localhost:3690> 8951903c-f2c3-4193-bf79-c79530563c5e
Password for 'root': 루트 암호 입력
Authentication realm: <svn://localhost:3690> 8951903c-f2c3-4193-bf79-c79530563c5e
Username: 사용자 ID 입력
Password for 'kyudoc': 사용자 암호 입력
 
# trunk, branch, tags 확인
 
svn list svn://localhost/
branches/
tags/
trunk/
 
# 방화벽 해제 ( SVN 포트 : 3690 )
 
        iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
        /etc/rc.d/init.d/iptables save
        /etc/rc.d/init.d/iptables restart
 
 

SVN Client
 
Repository 기본 설정이 끝나면 이 Repository 에 필요한 코드를 올리면 된다.
 
이 작업을 import 라고 한다.
 
# 올릴 프로젝트 생성
 
     mkdir myproject
     touch hello.c
     vi /myproject/hello.c
 
     int main(int argc, char **argv) {
  printf("Hello World!!!\n");
     }
 
# import ( 프로젝트 등록 )
 
      svn import myproject svn://localhost/trunk -m "" --no-ignore --username kin3303
      ( lib 파일 추가시는 --no-ignore-force 옵션 추가로 줘야 함)
 
# Commit
 
     svn commit myproject
 
# Update
 
     svn update myproject
 
# 기타 주요 명령어
 
     svn help : 상세 사용법 출력. svn help subcommand 도 가능.
     svn add : 새로 생성한 파일이나 디렉토리를 저장소에 추가 예약
     svn mkdir : 디렉토리 새로 생성
     svn delete (del, remove, rm) : 파일이나 디렉토리를 삭제 (로컬과 저장소 둘다)
     svn move (mv, rename, ren) : 파일이나 디렉토리를 이동하거나 이름 변경
     svn copy (cp) : 파일이나 디렉토리 복사
     svn update (up) : 작업 영역을 저장소 정보에 맞춰서 업데이트.
     svn commit (ci) : 작업 영역의 변경 내역을 저장소에 저장.
     svn status (st) : 상태 보기
     svn log : 로그 기록 확인
     svn diff : 차이점 확인
     svn dump : 저장소 내용을 덤프해서 파일에 저장
     svn load : 덤프 파일 내용을 저장소에 쏟아넣음
 
# 저장소 백업
 
     cd /var/svn$ svnadmin dump repo_name > repo_name.dump
 
# 저장소 복구
 
     cd /var/svn$ svnadmin create repo_name$ svnadmin load repo_name < repo_name.dump
 
 

SVN Repository 서버와 SVN 클라이언트
 
file:///     =>  로컬 디스크 접근
http://     =>  웹 접근
https://    => SSL 을 통한 웹으로의 접근
svn://      =>  svn 서버 프로토콜을 이용한 접근
svn+ssh://  => ssh 터널을 통한 svn 서버를 이용한 접근
 
 
 
 
 
 

'SCM > SVN' 카테고리의 다른 글

04. 이클립스 환경에서 svn을 이용한 간략한 소스관리  (1) 2020.01.29
03. SVN Connector 설치  (0) 2020.01.28
02. Java 에 SVN 설치  (0) 2020.01.28
01. 원격 저장소  (0) 2020.01.28