[svn 설치]
먼저 subversion(svn)을 설치하자.
[root]$ yum install subversion
[svn 설정 - 필수 설정]
사용자 계정 svn을 생성하고, svn 저장소를 생성하자.
아래의 경우 저장소(repository는 /svn 이다.
[root]$ mkdir /svn
[root]$ chown -R root:root /svn
그리고 프로젝트폴더를 생성하자. 아래의 경우 프로젝트 이름이 repos가 된다.
[root]$ svnadmin create --fs-type fsfs /svn/repos
권한을 설정하자. /svn/repos/conf/svnserve.conf 의 주석을 제외한 부분이 아래와 같아야 한다.,
realm 은 리파지토리의 도메인명(외부에서 볼 때의 이름)이라고 할 수 있다.
[general]
anon-access = none
auth-access = write
password-db = passwd
# authz-db = authz
realm = bage ###일단 local에서만 돌릴 거라서 localhost라고 설정
[sasl]
# use-sasl = true
#min-encryption = 0
#max-encryption = 256
계정을 추가하자. /svn/repos/conf/passwd 의 내용을 모두 지우고, 아래처럼 입력.
아래의 경우 id는 bage 이며, 암호는 xxxxx 가 된다.
[users]
bage= xxxxx
* 만약 개인용 서버가 아니라면 sasl을 이용하여 인증하는 방식을 이용하자. 왜냐햐면 passwd 방식(위 방식)은 암호를 누구나 확인할 수 있어서 내 리파지토리에 다른 사람이 접근할 가능성이 높기 때문이다.
설정을 모두 끝냈으면 포트 설정 iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
설정이 완료되고 svn checkout svn://(사용자 도메인...테스트는 localhost)/repos 으로 접속하면 ID와 비밀번호를 입력하여 성공하면 "checked out revision 0" 이 나온다. 접속하고 에러가 나오면 ####killall svnserve 입력!!
아래와 같은 메세지가 뜨면 NO를 선택!!
우분투(리눅스) 시스템은 원격으로 접속하여 작업을 수행할 때가 많다. 원격접속으로 작업후 해당 소스를 커밋하면 다음과 같은 문구가 뜬다.
인증 영역(realm): <svn://xxx.xxx.xxx.xxx:3690> xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx
'xxxxx'의 암호:
-----------------------------------------------------------------------
ATTENTION! Your password for authentication realm:
<svn://xxx.xxx.xxx.xxx:3690> xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxx
can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/home/xxxxx/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)?
올 바른 암호를 입력한 다음 "Store password unencrypted (yes/no)?" 문장에서 yes 또는 no를 아무리 입력을해도 다음으로 진행되지 않는다. 로컬에서 작업시에는 yes를 입력하면 올바르게 커밋을 하지만 원격에서 접속시에는 커밋을 하지 않는 않는다.
원격 접속시 커밋되지 않는 문제를 해결하기 위해서 위에서 제시한 방법으로 해결하였다. 사용자 홈디렉토리에 있는 .subversion/servers 파일을 다음과 같이 편집기로 연다.