svn(subversion) 간단 정리
1. subversion 설치
yum install subversion
2. 저장소로 사용할 디렉토리 생성
mkdir /svn
chown -R root:root /svn
원하는 곳에 만들면 된다(/svn 은 예제일뿐)
3. 디렉토리에 저장소 생성
svnadmin create --fs-type fsfs /svn/repo
fsfs 는 저장소를 파일시스템으로 만든다는 것.
다른 형태도 있으니 필요하면 변경
4. 접속 인증 설정
/svn/repo/conf/svnserve.conf 파일내용을 아래와 같도록 수정
[general]
anon-access = none
auth-access = write
password-db = passwd --> 접속인증 아이디/비번 저장을 passwd 파일로 사용한다는 뜻(리눅스의 passwd 아님)
# authz-db = authz
realm = bage
[sasl]
# use-sasl = true
#min-encryption = 0
#max-encryption = 256
5. 접속자 정보 설정
svnserve.conf 파일에서 password-db = passwd 로 했을 경우 /svn/repo/conf/passwd 파일에 아이디 비번 추가
[users]
bage= xxxxx --> 아아디=비번
공용서버 일 경우 아이디/비번을 열어서 볼 수 있으니 sasl 방식을 사용하도록 함
6. svn mkdir, 파일 추가등을 할때 메세지를 추가하기 위해 .bash_profile 에 내용 추가(안할 경우 명령 실행 시 -m 으로 따로 메세지를 넣어 주면됨)
쉘접속 사용자의 .bash_profile 파일을 열어서 아래 내용 추가
SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR
7. trunk, tags, branches 생성
svn mkdir svn://localhost/repo/trunk
svn mkdir svn://localhost/repo/tags
svn mkdir svn://localhost/repo/branches
6에서 에디터를 설정 안했을 경우에는 아래와 같이.
svn mkdir svn://localhost/repo/trunk -m "생성메세지"
8. svn 데몬 설정 및 실행
yum 으로 설치 했을 경우 옵션 파일 /etc/sysconfig/svnserve 를 열어 아래와 같이 입력
OPTIONS="--threads --root /svn --listen-host 0.0.0.0"
service svnserve start
9. 참고 : svn 명령어
새 프로젝트에 파일 추가하기(Import)
D:\sampe\test 폴더를 만들고 readme.txt 파일을 만든 후 다음과 같이 svn import 명령을 실행한다.
svn import D:\sample\test svn://localhost/repo/trunk -m "readme.txt 파일 추가"
test폴더에서 import를 했다고 해서 import 폴더에 있는 파일들의 버전이 관리되지는 않는다. Subversion으로 관리하려면 프로젝트 저장소에서 체크아웃을 해야만 한다.
어차피 체크아웃을 해야 하니 새로 만든 프로젝트 저장소를 체크아웃한 뒤 add 명령으로 파일이나 디렉토리를 추가하고 커밋하는 방법을 사용하기도 한다.
프로젝트 저장소에서 소스 가져오기(Checkout)
svn co svn://localhost/repo/trunk
프로젝트 저장소에 소스 추가하기(Add)
svn add svn://localhost/asiavant/trunk
svn add로 추가한 뒤 커밋을 해줘야만 변경사항이 저장소에 반영된다.(svn ci, svn commit)
변경사항을 저장소에 반영하기(Commit)
svn ci svn://localhost/repo/trunk
파일을 변경하였거나 추가한 뒤에는 커밋을 해야만 저장소에 변경사항이 반영된다.
최신 소스 받아오기(Update)
svn up svn://localhost/repo/trunk
다른 명령들
로그 보기(Log): svn log
변경사항 확인하기(Diff): svn di
수정사항 되돌리기(Revert): svn revert
수정한 사람 보기(Blame): svn blame
파일, 디렉토리 잠그기(Lock): svn lock
파일, 디렉토리 잠금 풀기(Unlock): svn unlock
파일, 디렉토리 이름 바꾸기(Rename): svn rename
소스 가져오기(Export): svn export
소스 복사하기(Copy) - 브랜치(Branch)와 태그(Tag): svn copy
브랜치(Branch)와 태그(Tag) 전환하기(Switch): svn sw