SVN
Subversion
설치[편집 | 원본 편집]
리눅스[편집 | 원본 편집]
대부분의 배포판에서 subversion이란 패키지명으로 설치 가능하다.
#yum install subversion
사용법[편집 | 원본 편집]
리눅스[편집 | 원본 편집]
Repository 생성
레파지토리로 사용될 폴더를 하나 생성한다. SVN 전용 서버가 아니라면 레파지토리용 계정을 별도로 생성하여 관리하는 것이 좋다.
#mkdir /home/svn
- cd /home/svn
- svnadmin create 레파지토리이름
위 mkdir, cd 등은 상황에 따라 무시해도 된다. 레파지토리를 만들 폴더가 정해졌다면 바로 svnadmin create 부터 하면 된다.
계정 만들기
레파지토리가 생성되면 그 안에 설정파일들이 생긴다. ./conf/passwd 파일 수정을 통해 계정을 생성할 수 있다.
$vi /home/svn/레파지토리이름/conf/passwd [users] # harry = harryssecret # sally = sallyssecret user001 = password!@
SVN 시작
#svnserve -d -r /home/svn
또는
- svnserve --daemon --root 디렉터리
- -d는 deamon 데몬, 즉 백그라운드로 실행시키겠단 것이다. -i, -d, -X 등의 대체 옵션이 있다. 자세한 건 리눅스 svnserve 참고
- -r은 root, 즉 루트 디렉터리를 지정하겠다는 것이다. -r로 폴더를 지정하지 않을 경우에도 실행이 되는데 이는 현재 디렉터리로 지정되는 것이 아니라 완전 리눅스 루트 디렉터리로 지정되므로 그렇게 사용할 순 없다. 즉 "-r 디렉터리" 옵션은 필수이다.
첫번째 Checkout
체크아웃이란 레파지토리에 있는 소스코드를 불러오는 행위인데, 아직은 아무런 파일이 없으므로 여기선 그냥 레파지토리가 잘 생성되고 데몬이 잘 돌아가고 있는지 테스트하는 용도이다.
#svn checkout svn://127.0.0.1/레파지토리이름 Checked out revision 0.
위와 같이 Checked out revision 0. 이라고 나오면 성공이다. 이제 외부에서 이 레파지토리에 접근 가능하고 형상관리가 시작 가능하다. 물론 방화벽이 기본적으로 닫혀 있는 경우가 많으므로 그런 경우 포트를 열어줘야 한다. svnserve로 SVN을 시작할 때 포트를 지정하지 않았다면 기본적으로 3690 포트를 사용한다. 보안을 위해 임의의 다른 포트를 사용해주는 것이 좋다.
#svnserve -d -r /home/svn --listen-port 61223
이미 실행시켰다면 끄고 다시 실행해야 한다. 종료 방법은 리눅스 svnserve 참고
기본 디렉터리 만들기
실제 프로젝트에서 협업을 하기 위해선 기본적으로 사용하는 3개의 디렉터리를 만들어줘야 한다.
- trunk: 말 그대로 기둥이 되는 메인 저장소이다. 정상적으로 commit이 완료된 최신화된 파일이 저장되는 장소이다.
- branches: 작업 중인 소스코드들이 저장되는 장소이다. trunk에서 branches들을 뽑아내어 수정을 완료하면 다시 trunk에 merge를 하게 된다. 즉, trunk는 저장소에서 하나이지만 branches는 여러개가 될수 있다.
- tag: 소스코드가 지속적으로 수정되는 특정 기준시점에 대한 정보이다. commit이 계속 이루어진 최신 소스가 항상 정상 실행이 보장되는 것은 아니다. commit 후에 테스트를 하거나 릴리즈를 해 보고 오류가 있을 경우 가장 정상적으로 실행되었던 버전으로 돌려야 하는데 이 때 사용되는 것이 tag이다.