Leopard에는 subversion이 기본적으로 설치되어있다.
Tiger때에는 무척이나 복잡 (Getting Control with Subversion and Xcode) 했었는데, Leopard에서는 그리 어렵지 않게 Subversion 서버를 사용할 수 있게 되었다.
집의 Leopard를 홈서버 격으로 Subversion 서버로 설정하였고, Know-How를 공유하고자 한다.
1) root 계정 활성화
2) Subversion Repository 생성
3) 자동실행 Script 작성
4) Start-up Item 등록
5) Client 사용
1. root 계정 활성화
– Application > Utilities에서 “Directory Utility”를 실행하여, “Edit > Enable Root Password” 를 클릭하여 root 패스워드를 등록한다.
– Terminal을 열어서 “su” 명령어를 통해 root 계정으로 login한다.
$su
앞서 등록한 root 패스워드를 입력하여 root 계정으로 로그인 한다.
2. Subversion Repository 생성
1) Repository 생성
우선 Root Repository를 생성해야 한다. (여기서는 /data1/svn을 Repository root로 설정한다. 사용자 환경에 맞추어 변경하세요.)
#mkdir /data1/svn
#cd /data1/svn
#svnadmin create –fs-type fsfs project
이렇게하면 /data1/svn에 project directory 및 기본적으로 하위 디렉토리들이 만들어 진다.
인증/보안을 위한 몇가지 옵션을 설정해 주어야 한다.
2) 기본적인 환경 설정
#vi /data1/svn/project/conf/svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
기본적으로 anonymous access 불가, 인증 성공한 사람만 write권한, 인증방식은 passwd 파일 방식
#vi /data1/svn/project/conf/passwd
[users]
userid1=password1
userid2=password2
접속을 허용할 userid 및 password를 기재해주면 된다.
3. Subversion서버 자동실행 Script 작성
– Subversion Daemon을 실행시키기 위한 초기 작업으로 구동 script 작성
#mkdir /data1/script
#vi /data1/script/subvershion.sh
————————————————————————————————–
/usr/bin/svnserve -d -r /data1/svn
————————————————————————————————–
#chmod 755 /data1/script/subvershion.sh
4. Start-up Item 등록
– Leopard가 재부팅될 시 자동으로 Subversion Daemon 구동 script를 실행시키기 위해 Start-up Item 등록
#vi /Library/LaunchDaemons/com.subversion.launchd.plist
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.subversion.launchd</string> <key>ProgramArguments</key> <array> <string>/data1/script/subvershion.sh</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
#chown root:wheel /Library/LaunchDaemons/com.subversion.launchd.plist
이후 Rebooting 하면 Subversion이 떠 있는걸 확인할 수 있다. ( ps -ef | grep svnserve )
5. Client 사용
1) OSX terminal
Terminal명령어로 Subversion을 사용하기 위해서는 환경 변수 설정이 필요한데 다음과 같다.
$cd ~
$vi .bash_profile
————————————————————————————————–
SVN_EDITOR=/usr/bin/vim
export SVN_EDITOR
————————————————————————————————–
2) OSX GUI
– zigVersion : http://zigzig.com/
– svnX : http://www.apple.com/downloads/macosx/development_tools/svnx.html
– Versions : 아직 출시되지 않았지만 Disco를 제작한 madebysofa에서 Versions라는 SVN GUI client 제품을 개발하고 있고, 조만간 출시될 예정이라고 함.
3) Windows version
– Tortoise : http://blog.empas.com/mcchae/19118563 에 설명된 Tortoise 참조.
Subversion 참고 Reverence
한가지 질문을 들려도 될까요
저렇게 설정을 하면
접근할 주소가 어떻게 되는지요
http://localhost/…..
이런식으로 될 것 같은데요
체크아웃 할 때 필요한 정확한 좀 알 수 있을까요
감사합니다.
위의 명령 대로라면 “svn://localhost/project” 주소로 Access 하시면 간단하게 해결 됩니다. ID/PASS는 /data1/svn/project/conf/passwd 파일을 vi 에디터로 수정하시면 되구요.
http:// 주소로 연결하실려면 별도의 Apache / 관련 component를 따로 설치해야하는데.. 좀 복잡해요.
항상 좋은글 잘읽고 있습니다. 그런데 위의 1번에 루트계정 활성화부터 안되서요..
application -> utilities 밑에 아무리 찾아봐도 directory utility가 없던데요..
제가 뭘 잘못했나요?
감사합니다.~
정말 DevonThink는 제가 찾던 유용한 프로그램이었어요..^^
sudo를 사용하시면 됩니다.
예를 들어
“vi /data1/svn/project/conf/svnserve.conf”
root 권한이 필요해서 편집이 안되는 경우
“sudo vi /data1/svn/project/conf/svnserve.conf”
이렇게 vi를 구동하면, 실행 전에 root 비밀번호를 확인한 후 root 권한을 갖고 실행할 수 있습니다.