subversion 설치

2012. 4. 2. 09:37 from project

 

http://subversion.apache.org/

binary package → windows 환경에서

 

Win32Svn  http://sourceforge.net/projects/win32svn/

VisualSVN http://www.visualsvn.com/downloads/

 

다운로드 받은후 설치

 

Win32Svn 경우 정상적으로 설치 하였을 경우

svn --version 으로 설치를 확인
 

C:\Documents and Settings\Administrator.SCN12A01000301>svn --version
svn, 버젼 1.7.4 (r1295709)
    Mar  5 2012, 09:29:21에 컴파일 됨

Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/ 

저장소(repository) 접근 모듈(RA) 목록:

* ra_neon : Neon을 이용하여 WebDAV 프로토콜을 통해 저장소에 접근하는 모듈
  - 'http' 스키마를 처리합니다.
  - 'https' 스키마를 처리합니다.
* ra_svn : svn 네트워크 프로토콜을 사용하여 저장소에 접근하는 모듈
  - Cyrus SASL 인증 이용
  - 'svn' 스키마를 처리합니다.
* ra_local : 로컬 디스크에 있는 저장소를 접근하기 위한 모듈
  - 'file' 스키마를 처리합니다.
* ra_serf : serf를 이용하여 WebDAV 프로토콜을 통해 저장소에 접근하는 모듈
  - 'http' 스키마를 처리합니다.
  - 'https' 스키마를 처리합니다.

C:\Documents and Settings\Administrator.SCN12A01000301>

 

1. SVN 저장소 만들기

D:\>md SvnRoot

D:\>cd SvnRoot

D:\SvnRoot>svnadmin create --fs-type fsfs "D:\SvnRoot\프로젝트명"

D:\Svnroot>

 

2. conf파일 수정

만들어진 저장소 폴더안의 conf폴더의 파일들을 수정한다.

환경설정

svnserve.conf 의 아래 주석을 다 해제한다.

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

auth-access = write   -- 인증사용자 접근권한 ( none , read , write ) 사용자권한이 폴더접근권한보다 우선시 적용

password-db = passwd  -- 계정/비밀번호 파일

authz-db = authz  -- 폴더 접근권한 설정 파일

realm = My First Repository   -- 저장소 이름

 

passwd

[users] 하위로 계정 = 비밀번호 형식으로 추가한다

 

authz

[group] 하위에 그룹명 = 계정,계정, ... 형식으로 그룹을 지정한다.

경로설정 예시

[/] 루트

[/abc] 루트하위 abc폴더

[프로젝트명:/abc] 저장소이름과 함께 사용한 예

폴더 권한 설정 예

@member = r  member 그룹에 대해 읽기 권한 설정

abc=rw abc 계정에 대해 읽기/쓰기 권한 설정

enemy= enemy 계정에게 접근권한 해제

 

3. 기동 
 


 D:\>svnserve -d -r "D:\SvnRoot"

cmd 창이 떠있는 상태로 서버기동이 되었다 해당 cmd창을 닫으면 꺼진다.


기동 확인을 위해 cmd 창을 하나 더 띄우고 체크아웃을 해본다.

D:\>svn checkout "svn://127.0.0.1/MyProject"
체크아웃된 리비전 0.

 

 

로그메시지를 남겨야만 커밋 가능하게 설정

SVN의 해당 저장소의 /hooks/에  pre-commit.bat이란 파일을 넣어준다.

 

@echo off

::

:: Stop commit that have empty log messages. 

::

setlocal

set "REPOS=%~1"

set "TXN=%~2"

set "SVNLOOK=c:\progra~1\subversion\bin\svnlook.exe"

:: Make sure that the log message contains some text.

for /f  "tokens=*" %%i in ('%SVNLOOK% log -t "%TXN%" "%REPOS%"') do set "LOGMSG=%%i"

if not "%LOGMSG%"=="" exit 0

echo. 1>&2

echo Your commit has been blocked because you didn't give any log message! 1>&2

echo  Please write a log message describing the purpose of your changes and 1>&2

echo then try committing again -- thank you 1>&2

exit 1


 

 

백업(dump) 및 복구

dump

1. cmd창을 실행

2. 백업하고자하는 저장소의 상위 디렉토리로 이동

3. "svnadmin dump 저장소이름 > 백업파일이름" 로 덤프생성

 

restore

1. cmd창 실행

2. 저장소 생성

3. 복구하고자 하는 저장소의 상위디렉토리로 이동

4. "svnadmin load 저장소이름 < 백업파일이름" 로 복구

-- 계정정보 및 폴더접근권한 설정파일은 따로 복구

 

 

 

'project' 카테고리의 다른 글

SI 프로젝트에서 JOB분류 명칭  (0) 2012.10.25
Samsung network Result code  (0) 2011.12.28
표준, 시스템 엔지니어링, 상호운용성, ITA  (0) 2011.12.21
Posted by 에시드 :