[리눅스] svn 설정 및 사용

|

이전까지 멍청하게 일일히 소스 통합을 하였던 방식 대신에 Subversion(svn)을

사용하는 방법에 대해서 알아보자.

svn을 처음 사용하고 감격의 눈물을 흘릴 뻔 했다. 자동으로 소스를 관리해주는 편리함에

로그 관리를 통해 이전 소스와의 비교까지 가능하고, 윈머지를 같이 사용할 수도 있다.

확실히 머리가 좋아야 몸이 덜 고생하는 법인데..

리눅스 설치하는 실습 후에 원래는 apache2와 svn을 통합하여 사용하는 방법으로

설치 하였으나 굳이 그럴필요 없다는 말에 새로 설정하는 서버에는 svn만 설치.

apache와 함께 사용할 수 있으나 http를 사용하는 것보다 svn이 좀 더 빠르다고 한다.

subversion 설치 리눅스 명령어

sudo apt-get install subversion

자동으로 svn 설치를 마쳐준다.

svn의 설치를 마쳤다면 저장소를 설정하는 명령을 한다.

home 밑에 svn폴더를 만들고 그 안에 사용하고 싶은 저장소의 명을 명령어에 넣고 실행한다.

저장소 생성 명령어

sudo svnadmin create --fs-type fsfs (저장소명)ex)AMT

 

* --fs-type 뒤의 fsfs는 저장소의 타입을 의미한다.

버클리DB 타입인 bdb를 쓸 수 있고 현재 사용한 것과 같은

파일시스템 형식인 fsfs 또한 사용가능하다.



위와 같은 명령어를 실행하면, AMT라는 폴더가 생성되고 하부 폴더로 각종 설정이

가능한 폴더 및 파일이 생성된다.

그 중 conf폴더의 authz, passwd, svnserve.conf 파일은 설정이 필요한 파일이다.

#authz

이미 존재하는 부분을 제외하고

[groups]에는 설정하고 싶은 그룹이름을 적고 그 안에 구성원의 아이디를 작성하면 된다.

ex) admin = kjk3071


[/], [/home/svn/AMT]

다음 폴더들은 위에서 설정한 그룹이 어떠한 권한을 가질 수 있는지 설정하는 곳이다.

ex) @admin = rw
     ykjk321 = rw

그룹일 경우 앞에 @를 붙이고 아이디에 직접 권한을 할당할 경우 아이디만 적으면 된다.
아이디 혹은 그룹명에 할당한 r 은 read, w는 write를 의미한다. 


#passwd

[users] 밑에는 설정하고 싶은 사용자의 아이디와 패스워드를 설정할 수 있다.

ex) kjk3071 = 123


#svnserve.conf

처음에는 파일 전체가 주석처리 되어있고, 이 중 필요한 부분의 주석을 제거한다.

[general]에서

anon-access = none  //인증되지 않은 사용자의 권한

auth-access = write //인증된 사용자의 사용권한


password-db=passwd //패스워드 정보를 가져오는 파일

authz-db=authz //사용자 정보를 가져오는 파일

현재까지 필요한 내용은 이렇게 수정을 해주면 된다.


#svn 명령어

sudo svnserve -d -r /home/svn/  >> svn을 가동시키는 명령어

sudo killall svnserve >> svn을 중지하는 명령어


서버 재가동시에는 svn을 켜줘야 한다.

svn 가동 명령어를 수행 한 후 svn 클라이언트 프로그램을 통해 checkout을 실행하면 완료.

And