문서 버전: 1.0.5
작성일자: 2005-06-16
수정일자: 2006-02-03
소개 (Introduction)
이 문서는 Subversion을 사용하여 소스코드의 버전 컨트롤을 하고자 하는 모든 소프트웨어 종사자를 위해 작성되었습니다. 상당수의 경우 오픈 소스 소프트웨어의 높은 진입장벽 중 하나는 어려운 설치 방법입니다. 이러한 진입장벽을 제거하고, 보다 많은 개발자가 Subversion을 사용할 수 있도록 돕고자 작성되었습니다.
이 문서의 주요 섹션은 다음과 같습니다.
왜 Subversion인가?
이 세상에는 유용한 소스버전 컨트롤 시스템이 많습니다. 그런데 왜 Subversion을 선택했을까요? Subversion과CVS를 비교한 다음 문서에 자세한 비교 설명이 실려 있습니다.
문서 ‘CVS와 Subversion을 이용한 소스 코드 버전 관리’는 분실을 대비해서 로컬파일로 준비했습니다.
시스템 요구사항 (System Requirements)
이 문서 상에 기술된 내용이 테스트된 환경은 다음과 같습니다.
- Microsoft Windows® 2000 Professional operating system
참고 문헌 (Related Links)
이 문서는 다음 문서를 참고하여 만들어졌습니다.
이 문서는 설치 가이드이므로, Subversion의 사용법이나 노하우를 익히려면 다음 문서를 참고하십시오.
설치 (Installation)
Subversion 설치
-
설치 파일 구하기
Windows용 설치파일(.exe)을 다운로드 합니다. 현재는 버전 1.2.0이 나왔습니다만, 이 설치 가이드에서는 버전 1.1.4를 사용합니다.버전 1.2.0이 나오면서 Berkeley DB의 새 버전을 사용하게 됐습니다. 이 때문에 이전 버전과의 호환성 문제가 발생합니다. 문서 작성자인 저의 컴퓨터엔 이미 1.1.1 버전이 설치되어 있기 때문에 부득이 버전 1.1.4를 사용합니다.
-
Subversion 설치하기
설치 프로그램(예. svn-1.1.4-setup.exe)을 더블 클릭하면 아래와 같은 설치화면이 나옵니다. 지시사항에 맞춰 Subversion을 설치하면 됩니다.
만약 후에 WebSVN과 같은 Subversion 웹 인터페이스를 설치하려고 하면 주의해야 할 점이 있습니다. Windows의 IIS를 웹서버로 사용하면 별다른 주의가 필요 없지만 Apache 서버를 사용할 때는 Subversion 설치 전에 Apache를 설치합니다. 이미 Subversion을 설치한 경우에는 다시 한번 Subversion을 설치합니다. 이 문서에서는 IIS 서버를 사용하는 경우를 다루기 때문에 자세한 사항은 언급하지 않습니다.
-
Subversion PATH 설정
Subversion의 바이너리가 설치된 경로를 환경변수 PATH에 등록합니다. 제어판 -> 시스템 -> 고급 -> 환경변수 -> 시스템변수 -> PATH를 선택합니다. 변수값에 바이너리가 설치된 경로를 추가합니다. 기본값은 다음과 같습니다.
C:\Program Files\Subversion\bin
환경변수 값이 제대로 설정되었는지 확인하려면 다음과 같이 작업합니다. 시작 -> 실행 -> 창에 cmd를 입력한 후 확인 버튼을 누릅니다.
검은 화면의 명령창이 나타날 것입니다. Svnlook 을 입력하고 엔터를 누릅니다. 다음과 같은 메시지가나오면 환경설정이 올바른 것입니다.
만약 다음과 같은 메시지가 나타나면 환경설정 값이 올바른지 다시 확인해야 합니다.
'svnlook'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치파일이 아닙니다.
-
SVNSERVE Manager 설치
-
개요
SVNSERVE Manager은 Windows 시작시 Subversion을 자동으로 띄워주는 등, Subversion 서버를 편리하게 관리하도록 도와주는 소프트웨어입니다.
-
다운로드 및 설치
여기에서 Windows용 설치 파일을 다운로드 받은 후실행시킵니다.
설치 후에 SVNSERVE Manager가 자동 실행되지 않습니다. 바탕화면에 바로가기(SVNSERVE Manager) 메뉴를 더블클릭합니다. 아래와 같은 트레이 아이콘이 뜹니다. 빨간색으로 표시한 것이 SVNSERVE Manager의 트레이 아이콘입니다.
트레이 아이콘을 더블클릭하면 다음과 같은 메뉴를 볼 수 있습니다.
알맞은 값을 설정한 다음에 ‘Hide’ 또는 ‘X’를 클릭합니다.
-
WebSVN 설치
-
개요
WebSVN은 대표적인 Subversion 전용 웹 인터페이스입니다. 이 외에도 Subversion을 지원하는 웹 인터페이스는 ViewCVS, ViewSVN, SubView 등이 있습니다. WebSVN을 사용하면 Subversion의 저장소(Repository)를 웹상에서 접근할 수 있습니다. 다음은 KDE 프로젝트의 WebSVN 사이트입니다.
-
설치
우선 WebSVN 을 다운로드 받습니다. 현재 버전은 1.61입니다. WebSVN_161.zip 파일의 압축을 풀면 install.txt 파일이 있습니다. 해당 파일을참조하시거나 다음의 설명에 따라 작업하십시오.
-
IIS 서버 설치 및 작동
우선 IIS 서버가 설치되어 있는지 확인합니다. 제어판 -> 관리도구 -> 인터넷 정보 서비스(IIS) 관리를 클릭합니다.
기본 웹 사이트가 (중지됨) 등으로 표시되어 있으면 시작시킵니다. 만약 위의 메뉴를찾을수 없다면 IIS 서버를 설치해야 합니다. 제어판 -> 프로그램 추가/제거 -> 윈도우 구성요소 추가/제거 -> 응용프로그램 서버(Windows 2003 Server의 경우에만 해당함) -> 인터넷 정보 서비스를 체크하고 확인 버튼을 클릭합니다.
-
PHP 설치
여기서는 버전 4.3.11을 설치하겠습니다. Windows installer로 된 설치 프로그램을 다운로드 받아서 실행합니다. 설치 프로그램의 안내에 따라 PHP를설치합니다. 설치 작업 마지막에 아래 두 메시지 창이 연달아 팝업되면 작업이 성공한 것입니다.
만약 둘 중 하나라도 보이지 않는다면 IIS서버에 문제가 있는 것일 수 있습니다. 특히 다음의 사항을점검해야 합니다.
- IIS 서버가 설치되었는가.
- 기본 웹사이트가 시작되었는가.
- 기본 웹사이트의 TCP 포트가 80인가.
만약 Apache 를 웹서버로 사용한다면 첫번째 메시지는 팝업되지 않습니다.
-
IIS 설정
제어판 -> 관리도구 -> 인터넷 정보 서비스(IIS) 관리 -> 기본 웹 사이트 -> 속성을 선택합니다.
기본 웹 사이트 등록정보 -> 문서를 선택합니다. 추가 버튼을 클릭하고 index.php를 써넣은 후 확인 버튼을 클릭합니다.
-
GnuWin32 Packages 설치
WebSVN의 install.txt 문서를 읽으면 다음 소프트웨어를 설치해야 합니다.
위의 사이트에서 다운로드 받아도 되며 GnuWin32 Packages 사이트에서 다운로드 받아도 됩니다. 후자 쪽이 더 편할 것입니다.
전자와 후자의 경우 각각 응용프로그램이 설치되는 경로가 다릅니다. 기본 경로값은 다음과 같습니다.
전자: C:\cygwin\bin
후자: C:\Program Files\GnuWin32\bin위의 경로를 환경변수 PATH에 등록합니다. 방법은 Subversion의 바이너리 경로를 등록했을 때와동일합니다.
-
WebSVN을 IIS 홈디렉토리(Document Root)에 복사하기
WEBSVN 사이트에서 다운로드 받은 PHP 소스 디렉토리를 IIS서버 Document Root에 복사합니다. Document Root의 기본값은 다음과 같습니다.
C:\Inetpub\wwwroot
Document Root의 값을 모를 때는 다음의 절차를 따릅니다.
-
WebSVN 설정하기
명령창에서 다음 명령어를 실행시킵니다. 이때 distconfig.inc 파일의 구체적 경로는 Document Root 경로에 따라 달라진다는 점을 주의하십시오.
copy C:\Inetpub\wwwroot\WebSVN\include\distconfig.inc C:\Inetpub\wwwroot\WebSVN\include\config.inc
그리고 메모장으로 복사된 C:\Inetpub\wwwroot\WebSVN\include\config.inc 파일을 불러들입니다.
-
config.inc 파일 수정 ? Platform 설정
[변경 전]
// Uncomment the next line if your running a windows server // // $config->setServerIsWindows();
[변경 후]
// Uncomment the next line if your running a windows server // $config->setServerIsWindows();
-
config.inc 파일 수정 – Subversion Binary와 GnuWin32 Packages의 경로 설정s
[변경 전]
// Configure these lines if your commands aren't on your path. // // $config->setSVNCommandPath("Path/to/svn and svnlook/ e.g. c:\\program files\\subversion\\bin"); // $config->setDiffPath("Path/to/diff/command/"); // For syntax colouring, if option enabled... // $config->setEnscriptPath("Path/to/enscript/command/"); // $config->setSedPath("Path/to/sed/command/"); // For delivered tarballs, if option enabled... // $config->setTarPath("Path/to/tar/command/"); // For delivered GZIP'd files and tarballs, if option enabled... // $config->setGZipPath("Path/to/gzip/command/");
[변경 후]
// Configure these lines if your commands aren't on your path. // $config->setSVNCommandPath("c:\\program files\\subversion\\bin"); $config->setDiffPath("C:\\Program Files\\GnuWin32\\bin"); // For syntax colouring, if option enabled... $config->setEnscriptPath("C:\\Program Files\\GnuWin32\\bin"); $config->setSedPath("C:\\Program Files\\GnuWin32\\bin"); // For delivered tarballs, if option enabled... $config->setTarPath("C:\\Program Files\\GnuWin32\\bin"); // For delivered GZIP'd files and tarballs, if option enabled... $config->setGZipPath("C:\\Program Files\\GnuWin32\\bin");
-
config.inc 파일 수정 ? Subversion 저장소 경로 설정
여기서는 Subversion의 저장소(Repository)를 설정해보겠습니다. Config.inc의 주석에 따르면저장소 설정에는 크게 두 가지 방법이 있습니다. 첫번째는 각각의 저장소를 하나씩 추가하는 것입니다. 두번째는 저장소 Root 디렉토리를 설정하는 것입니다. 이 방법은 Root 디렉토리 하부에저장소를 두었을때 사용할 수 있습니다. 두 번째가 일반적이기 때문에 여기서는 두 번째 방법을 따르겠습니다.
[변경 전]
// To use the parent path method, uncomment the newt line and and replace the path with your one. You // can call the function several times if you have several parent paths. // // $config->parentPath("Path/to/parent (e.g. c:\\svn)");
[변경 후]
// To use the parent path method, uncomment the newt line and and replace the path with your one. You // can call the function several times if you have several parent paths. // $config->parentPath("D:\\SVNRepository");
현재 문서작업 중인 컴퓨터의 Subversion 저장소 Root 디렉토리 경로는 "D:\SVNRepository" 입니다. 여러분의 환경에 따라 경로 값을 조정해야 합니다.
-
config.inc 파일 수정 ? 웹사이트 템플릿(디자인) 선택하기
원하는 템플릿의 주석만 제거하면 됩니다.
// --- LOOK AND FEEL --- // // Uncomment ONLY the display file that you want. $config->setTemplatePath("$locwebsvnreal/templates/Standard/"); // $config->setTemplatePath("$locwebsvnreal/templates/BlueGrey/"); // $config->setTemplatePath("$locwebsvnreal/templates/Zinn/");
-
config.inc 파일 수정 ? 언어 설정
WebSVN은 다양한 언어(인코딩)을 지원합니다. Config.inc 파일 중“// — LANGUAGE SETUP —“ 섹션에서 원하는 언어를 선택하면 됩니다. 아무것도 선택하지 않으면 English가 기본값입니다.
-
config.inc 파일 수정 ? Tarball Download 활성화
Tarball Download도 Subversion 저장소 설정과 같이 개별 저장소마다 활성화 여부를 지정할 수도 있습니다. 여기서는 모든 저장소에 대해 tarball download 기능을 활성화하겠습니다.
[변경 전]
// --- TARBALLS --- // You need tar and gzip installed on your system. Set the paths above if necessary // // Uncomment the line below to offer a tarball download option across all your // repositories. // // $config->allowDownload();
[변경 후]
// --- TARBALLS --- // You need tar and gzip installed on your system. Set the paths above if necessary // // Uncomment the line below to offer a tarball download option across all your // repositories. // $config->sallowDownload();
-
config.inc 파일 수정 ? Syntax Colorization
[변경 전]
// --- COLOURISATION --- // Uncomment this line if you want to use Enscript to colourise your file listings // // You'll need Enscript version 1.6 or higher AND Sed installed to use this feature. // Set the path above. // // $config->useEnscript();
[변경 후]
// --- COLOURISATION --- // Uncomment this line if you want to use Enscript to colourise your file listings // // You'll need Enscript version 1.6 or higher AND Sed installed to use this feature. // Set the path above. // $config->useEnscript();
-
-
-
디렉토리 보안 설정
-
tarball download
WebSVN은 C:\WINNT\Temp 또는 C:\\Windows\Temp 디렉토리에 tarball 파일을 생성합니다. 그러므로 일반 웹사이트 사용자가 tarball download 기능을 사용하려면 IUSR_<machinename>에게 C:\WINNT\Temp에 대한 읽기 접근 권한을 부여해야 합니다. 다음의 절차를 따릅니다.
-
Cache
-
테스트
인터넷 익스플로러를 열고 주소 창에 다음 주소를 입력합니다.
http://localhost/WebSvn/ 또는 http://localhost/WebSvn/index.php
-
‘Directory Listing Denied’ 에러
위의 메시지는 PHP 설정 후 IIS의 기본 콘텐트 페이지에 index.php를 추가하지 않았기 때문에 보이는 것입니다.sss
-
404 에러
만약 다음과 같은 ‘404, 페이지를 찾을 수 없습니다’ 에러가 발생하면 PHP에 문제가 있을 가능성이 높습니다.
PHP를 다시 설치할 때는 다음 순서에 유의해야 합니다.
-
제어판 -> 프로그램 추가/제거 -> PHP 4.3.11
-
C:\WINNT\php.ini 또는 C:\Windows\php.ini 파일을 제거합니다.
-
PHP 4.3.11 을 다시 설치합니다.
-
-
dl.php 오류
Tarball Download 기능을 사용해 봅시다.
만약 다음과 같은 메시지가 뜬다면 디렉토리 보안 설정이 잘못된 것입니다.
Warning: chdir(): No such file or directory (errno 2) in c:\inetpub\wwwroot\websvn\dl.php on line 65 Warning: filesize(): Stat failed for branches.tar.gz (errno=2 - No such file or directory) in c:\inetpub\wwwroot\websvn\dl.php on line 70 Unable to open file branches.tar.gz Warning: fclose(): supplied argument is not a valid stream resource in c:\inetpub\wwwroot\websvn\dl.php on line 86s
-
permission 오류
Warning: gzopen(.\cache\D__SVNRepository_public_mods_17): failed to open stream: Permission denied in c:\inetpub\wwwroot\websvn\include\svnlook.inc on line 301
위와 같은 Permission 오류가 발생하면 메시지를 유심히 살펴봐야 합니다. 위의 메시지를 읽어보면 cache 디렉토리에 파일 쓰기를 하려다가 실패한 것을 알 수 있습니다. 해당 디렉토리에 적절한 권한(이 경우에는 쓰기권한)을 부여하면 됩니다.
-
기타
-
WebSVN에 .NET C# Syntax Colourisation 기능 추가하기
-
csharp.st 파일 다운로드
아래 사이트에서 csharp.st 파일을 구합니다.
http://www.xml-blog.com/archives/000282.html
tps://sourceforge.net/tracker/?func=detail&atid=368760&aid=690128&group_id=18760
Download만약 두 번째 사이트에서 csharp.st 파일의 내용을 복사해서 csharp.st 파일을 만들 때는 주의해야 합니다. 메모장으로 csharp.st 파일을 만들면 안 됩니다. ‘UNIX 종료 ? LF’ 형식을 지원해 주는 텍스트 편집기를 사용해야 합니다.
다운로드 받은 csharp.st 파일을 [Enscript-install-path]\share\enscript\hl 디렉토리 안에 복사합니다.
(예: “C:\Program Files\GnuWin32\share\enscript\hl”) -
setup.inc 파일 수정
[WebSVN-install-path]\include\setup.inc (예: C:\Inetpub\wwwroot\WebSVN\include\setup.inc) 파일을 메모장으로 불러옵니다. 그리고 다음과 같이 setup.inc 파일을 수정합니다.[변경 전]
// List of extensions recognised by enscript. $extEnscript = array ( ".ada" => "ada", ".adb" => "ada", ".ads" => "ada", ".awk" => "awk", ".c" => "c", ".c++" => "cpp", ".cc" => "cpp", ".cpp" => "cpp", 이하 생략……
[변경 후]
// List of extensions recognised by enscript. $extEnscript = array ( ".ada" => "ada", ".adb" => "ada", ".ads" => "ada", ".awk" => "awk", ".c" => "c", ".c++" => "cpp", ".cc" => "cpp", ".cpp" => "cpp", ".cs" => "csharp",
-