wiki:Svn

참고자료

다운로드 & 설치

SVN 서버 셋팅

저장소 생성

svnadmin create [path]
  • 저장소 생성, 패스 마지막 폴더 전까지는 미리 만들어져 있어야 함.
  • 저장소 생성하면 [path]/conf 에 3개 파일 생성

svnserve.conf

[general]

anon-access = none (익명사용자 접근 권한 : none, read, write)
auth-access = write (인증 사용자 접근 권한 : none, read, write)

password-db = passwd (사용자 비밀번호 파일명)

authz-db = authz (인증 사용자 파일명)

realm = My First Repository (저장소 접속시 멘트)

passwd

[users]
harry = foopassword
sally = barpassword

authz

[/] : 저장소 path
* = r : 모든 사용자는 읽기 가능

[groups] : 그룹지정 기능
calc-developers = harry, sally, joe
paint-developers = frank, sally, jane
everyone = harry, sally, joe, frank, sally, jane

[repos name:path]
harry = rw (해당 사용자는 읽기/쓰기
@paint-developers = r (해당 그룹은 읽기만)

실행

svnserve -d -r [path]
  • path : 저장소 경로, 개별 프로젝트에 대한 저장소는 프로젝트 명까지, 여러개 프로젝트를 관리하려면 부모 폴더로 설정

윈도우 서비스 등록

sc create svn binpath= "\"D:\Program Files (x86)\Subversion\bin\svnserve.exe\" --service -r E:\svn\repos"  displayname= "Subversion Server"  depend= Tcpip start= auto

visualSVN 셋팅

  • 프로그램 설치 : 저장소 루트 위치도 셋팅한다.
  • user 추가 : 패스 설정
  • Repositories 추가 후 추가한 저장소에 사용자를 추가한다.

HTTP 프로토콜 접속 설정

Apache server 설정

  • 서버버전설치폴더/bin/mod_dav_svn.so and bin/mod_authz_svn.so 파일을 Apache modules 폴더로 복사

httpd.conf 수정

  • 코멘트 삭제
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
  • LoadModule 추가
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

VirtualHost 섹션에 추가

  <Location /svn>
    DAV svn
    SVNParentPath "D:\Java_0125\DevStorage\SvnRepo"
    AuthzSVNAccessFile "D:\Java_0125\DevStorage\SvnRepo\authz"
    AuthType Basic
    AuthName "Subversion Repository"
    AuthUserFile "D:\Java_0125\DevStorage\SvnRepo\htpasswd"
    Require valid-user
  </Location>
  • 설치 완료 후 아파치 재시작이 실패할 경우 윈도우를 재시작하세요.

윈도우 클라이언트

svn 용어

기본 용어

  • Repository(repo) 저장소 : 자원을 저장하는 데이터베이스
  • Server 서버 : 저장소 컴퓨터
  • Client 클라이언트 : 저장소에 연결하는 컴퓨터
  • Working Set/Working Copy 작업공간 : 저장소의 자원을 가져와 개발 작업을 진행하는 공
  • Trunk (Main) 트렁크 : 저장소 중심축이 되는 소스코드,

기본 작업

  • Add (추가) : 저장소에 파일을 처음 추가할때
  • Revision(리비전) : 저장소의 파일(폴더) 버전 번호
  • Head(헤드) : 저장소에서 가장 최근의 리비전
  • Check out (체크아웃) : 저장소에서 로컬 작업 공간으로 파일을 가져오는 작업
  • Commit (Check in) : 로컬 작업 공간의 변경사항을 저장소에 반영
  • 커밋 메세지 : 커밋시 주석 내용
  • History (변경 로그) : 파일이 생성된 후 이후 변경 목록
  • Update (업데이트) : 저장소에 최신 소스를 가져와 동기화
  • Revert (복원) : 저장소의 가장 최신 버전으로 복원 (로컬 내용은 무시)

고급 작업

  • Branch (브랜치) : Trunk의 복사본으로 트렁크와 상관없이 작업 하고 싶을 경우 별도로 복사
  • Diff (비교) : 두 개의 파일에서 다른 부분을 찾는 작업, 리비전 사이의 변경된 부분을 찾을시 유용
  • Merge (병합) / Pathc(패치) : 브랜치에서 변경된 사항을 Trunk 와 통합하는 작업
  • Conflict (충돌) : 같은 파일을 여러명이 변경할 때 발생하는 현상
  • Resolve (출동 해결) : 충돌이 발생했을 때 해결하는 것
  • Locking (잠금 설정) : 다른 사람이 수정작업을 못하도록 파일 잠금 기능

Attachments