2008년 08월 11일
SVN 설정 (Windows)
SVN은 여러가지 모드로 동작할 수 있습니다.
1. 그냥 로컬에서만 사용한다(단일 사용자용).
2. SVN 서버를 윈도즈 서비스로 등록한다.
3. SVN을 아파치와 물려서 웹으로 사용한다.
뭐 또 막 SSH도 적용할 수도 있고, 여러 방법이 있는데, 일단 우리에게 필요한 방법은 3번 일 것 같습니다.
로컬에서만 사용하기.
얘는 SVN을 따로 받을 필요가 없습니다. 그냥 클라이언트만 받아서 혼자 사용하면 됩니다. 버전 관리를 혼자서도 사용할 일이 있을거라고 생각 됩니다. SVN에서는 저장소를 접근하는데 URL과 비슷한 주소를 사용합니다.
로컬에서 사용할거면
file:///{저장소 경로}
이렇게 지정해 주면 됩니다.
SVN서버를 윈도즈 서비스로 등록하기..
- 먼저 SVN 서버를 다운 받아서 적당한 디렉토리에 압축을 풉니다.
- SVN 서버를 윈도즈 서비스에 등록합니다.
- 명령창(cmd.exe)를 띄웁니다.
- 아래의 명령어를 실행시켜 줍니다(띄어쓰기 주의).
sc create svn binpath= "{svn 압축 푼 디렉토리}\bin\svnserve.exe --service -r {저장소로 쓸 디렉토리}" displayname= "Subversion Server" depend= Tcpip start= auto
- 위의 명령이 성공적으로 실행되었으면 또 아래의 명령어를 실행시켜 줍니다.
sc start svn
이제 윈도즈가 시작될 때 마다 SVN 서버가 돌고 있을 겁니다. 이제 SVN서버를 통해 저장소를 접근하기 위해서는 다음과 같은 URL을 사용하면 됩니다.
svn://{저장소 경로}
SVN을 처음 설치 했을 때, 읽기만 허용이 되있더라구요. 읽기/쓰기 모두 가능하게 하려면, 저장소로 지정된 디렉토리에 conf\svnserve.conf를 메모장으로 열어보면
#anon-access = read
#auth-access = write
줄 앞에 #은 주석처리로 이걸 지우면 그 줄이 동작하게 됩니다.
anon-access 는 익명(anonymous)사용자에게 줄 권한으로 읽기 밖에 안되는 것이고
auth-access 는 인증된(authorized)사용자에게 줄 권한으로 쓰기도 준 다는 것입니다.
인증은
#password-db = passwd
의 주석을 지움으로써 id/passwd를 부여할 수 있는데 값으로 준 파일(passwd)을 열어보면 [users]밑에 id = passwd 쌍으로 입력할 수 있습니다. 이렇게 직접 입력해주면 사용할 수 있습니다.
헌데, 단점은 svn서버가 사용하는 포트가 방화벽에 의해 막혀있는 환경에서는 외부 접근이 불가능 하다는 점입니다.
아파치에 물려서 웹으로 공유하기..
아파치는 웹 서버로 전 세계적으로 매우 유명합니다. 이제 이런 아파치에 svn을 물려서 사용하면 80포트로 소스를 공유할 수 있게 됩니다. 일단 svn 1.4.6에서는 아파치 2.2.4이상을 써야 한다고 하지만, 2.2.8에서는 오류가 나더라구요. 그래서 그냥 아파치 2.2.4로 했더니 잘 동작 했습니다.
svn\bin에 보면 mod_dav_svn.so와 mod_authz_svn.so와 여러 dll들이 있습니다.
*.so들은 {아파치}\modules에, *.dll들은 {아파치}\bin에 각각 복사하여 덮어 씌웁니다.
그리고, {아파치}\conf\httpd.conf를 편집기로 열어서 좀만 내리다 보면 DSO 어쩌고 하는 부분이 있습니다.거기에
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
를 추가하고,
LoadModule dav_module modules/mod_dav.so
를 찾아서 주석 처리를 해제(#을 지웁니다) 합니다. 그리고 파일 맨 끝에
<Location /svn-repos>
DAV svn
SVNPath {저장소 경로}
</Location>
을 추가한다음 저장하고 아파치를 재 시작 합니다. 그리고, http://localhost/svn-repos 로 들어가면 저장소가 나올텐데 안나오면 뭐가 잘못 된 것입니다. 여기서 문제는 아무나 읽고 쓰고 할 수 있다는 것입니다. 아파치한테 보안을 적용한다고 알려 줘야 하는데, 바로 위에서 추가했던 내용에 더 추가합니다.
<Location /svn-repos>
DAV svn
SVNPath {저장소 경로}
AuthType Basic
AuthName "어쩌구 저쩌구"
AuthUserFile {패스워드 파일 경로}
Require valid-user
</Location>
이제 패스워드 파일이 필요한데, 아파치가 관리하는거니깐 아파치에 맞는 패스워드 파일을 만들어야 합니다. 아파치에서는 패스워드 파일을 만들어 주는 툴을 제공해 주고 있는데요
{아파치 경로}\bin\htpasswd -c -m {패스워드 파일 경로} {사용자 id}
해주면 패스워드를 물어봅니다. 잘 입력해주면 패스워드 파일이 만들어 지는데, 이미 존재하는 패스워드 파일에 사용자를 추가하고 싶으면 -c 옵션을 사용하지 않으면 된다고 합니다.
# by | 2008/08/11 20:35 | Dandelion | 트랙백 | 핑백(1) | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
... SVN 설정 : http://duckii.egloos.com/692021SVN Eclipse Plugin 설정 : http://vicki.tistory.com/662 ... more