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 '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 |