(一) 使用 Apache 2.2.x HTTP 服务器。
(1) 下载 apache 2.2.x,地址为 [url]http://httpd.apache.org/[/url]。
(2) 下载 subversion 1.5.x,地址为 [url]http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91[/url],注意:subversion 必须要下载与 apache 2.2.x 兼容的版本,否则 apache 将不能与 subversion 一起工作。可以通过查看 subversion 安装目录下的 readme.txt 获取 subversion 与 apache 的版本兼容信息。
(3) 复制 subversion 安装目录的 bin 目录下的 mod_authz_svn.so 与 mod_dav_svn.so 到 apache 安装目录的 modules 目录。
(4) 在 apache 安装目录的 conf 目录下建立文件 httpd-svn.conf。在 httpd.conf 文件最后添加一行:Include conf/httpd-info.conf。这种方式是我比较喜欢的方式,不用反复对 httpd.conf 文件进行修改,如果不需要 apache 对 subversion 进行管理时可以注释 Include conf/httpd-info.conf 行。
(5) 编辑 httpd-svn.conf 文件,任何文本编辑器都可以编辑。添加以下内容并保存。
[code]
#
# Load modules
#
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<IfModule dav_svn_module>
<IfModule authz_svn_module>
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath E:\svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:\svn\users
Require valid-user
</Location>
</IfModule>
</IfModule>
[/code]
(6) 打开浏览器,输入 http://127.0.0.1:80/svn,将提示输入用户名与密码,如果一切正确,将显示如下所示的页面。表示已经成功。
(7) 解释一下,SVNParentPath E:\svn 表示版本库父路径,含义是其下的每一个文件夹都是一个版本库。AuthUserFile E:\svn\users 表示使用基本认证的用户列表文件。可以通过 apache 自带的 htpasswd 命令创建,其密码是使用 MD5 进行加密的。其语法是:
htpasswd -c <路径/文件名> <要创建的用户> 或 htpasswd <路径/文件名> <要创建的用户>。-c 参数表示如果文件不存在将创建。
(8)如果觉得敲命令行添加一个个用户痛苦的话,可以写一个脚本文件。我写了一个 addusers.cmd 文件,内容如下。
[code]
@echo off
:menu
cls
echo *****************************************************************
echo ** add subversion users script **
echo ** write by dingli, 2008-08-10 **
echo *****************************************************************
set /p user_name=input user name [Q/q: Quit]:
if "%user_name%"=="" goto menu
if "%user_name%"=="Q" goto quit
if "%user_name%"=="q" goto quit
if exist users htpasswd users %user_name%
if not exist users htpasswd -c users %user_name%
echo The user [%user_name%] is created.
echo.
pause
goto menu
:quit
echo.
echo you can add subversion users on command line (eg: addusers [ENTER]).
echo.
pause
exit
[/code]
你可以直接双击运行该文件,从而添加一个新的用户。但前提是你的 path 环紧变量必须设置 apache 安装目录的 bin 目录。
(二) 使用 subversion 自带的服务器。
只需在命令行下使用 subversion 安装目录下 bin 目录的 svnserve.exe 即可启动 subversion 服务。语法如下:
svnserve --daemon --listen-host <listen_host> --listen-port <listen_port> --root <repository_root>
<listen_host> 为需要监听的主机名或 IP 地址。
<listen_port> 为监听端口。
<repository_root> 为版本库根目录。
同样,如果觉得敲命令行很痛苦的话,可以写一个脚本文件。我写了一个 svnstart.cmd 文件,内容如下。
[code]
@echo off
:menu
cls
echo *****************************************************************
echo ** subversion start script **
echo ** write by dingli, 2008-06-19 **
echo *****************************************************************
set /p is_start=startup subversion server [Y/N]?
echo.
if "%is_start%"=="Y" goto startup_svn
if "%is_start%"=="y" goto startup_svn
if "%is_start%"=="N" goto donot_startup
if "%is_start%"=="n" goto donot_startup
goto menu
:startup_svn
set default_listen_host=127.0.0.1
set default_port=8888
set default_repository_root=E:/work/svn
set /p listen_host=select a listen host [default is 127.0.0.1]:
set /p listen_port=select a listen port [default is 8888]:
set /p repository_root=select a repository root [default is E:/work/svn]:
if "%listen_host%"=="" set listen_host=%default_listen_host%
if "%listen_port%"=="" set listen_port=%default_port%
if "%repository_root%"=="" set repository_root=%default_repository_root%
echo.
echo listen host [%listen_host%] on port [%listen_port%]
echo repository root is [%repository_root%]
echo subversion server startup successful [CTRL+C stop].
echo.
svnserve --daemon --listen-host %listen_host% --listen-port %listen_port% --root %repository_root%
:donot_startup
echo you can start subversion server on command line (eg: svnstart [ENTER]).
echo.
pause
exit
[/code]
你可以直接双击运行该文件,从而启动 subversion 服务。但前提是你的 path 环紧变量必须设置 subversion 安装目录的 bin 目录。
(1) 下载 apache 2.2.x,地址为 [url]http://httpd.apache.org/[/url]。
(2) 下载 subversion 1.5.x,地址为 [url]http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91[/url],注意:subversion 必须要下载与 apache 2.2.x 兼容的版本,否则 apache 将不能与 subversion 一起工作。可以通过查看 subversion 安装目录下的 readme.txt 获取 subversion 与 apache 的版本兼容信息。
(3) 复制 subversion 安装目录的 bin 目录下的 mod_authz_svn.so 与 mod_dav_svn.so 到 apache 安装目录的 modules 目录。
(4) 在 apache 安装目录的 conf 目录下建立文件 httpd-svn.conf。在 httpd.conf 文件最后添加一行:Include conf/httpd-info.conf。这种方式是我比较喜欢的方式,不用反复对 httpd.conf 文件进行修改,如果不需要 apache 对 subversion 进行管理时可以注释 Include conf/httpd-info.conf 行。
(5) 编辑 httpd-svn.conf 文件,任何文本编辑器都可以编辑。添加以下内容并保存。
[code]
#
# Load modules
#
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<IfModule dav_svn_module>
<IfModule authz_svn_module>
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath E:\svn
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:\svn\users
Require valid-user
</Location>
</IfModule>
</IfModule>
[/code]
(6) 打开浏览器,输入 http://127.0.0.1:80/svn,将提示输入用户名与密码,如果一切正确,将显示如下所示的页面。表示已经成功。
(7) 解释一下,SVNParentPath E:\svn 表示版本库父路径,含义是其下的每一个文件夹都是一个版本库。AuthUserFile E:\svn\users 表示使用基本认证的用户列表文件。可以通过 apache 自带的 htpasswd 命令创建,其密码是使用 MD5 进行加密的。其语法是:
htpasswd -c <路径/文件名> <要创建的用户> 或 htpasswd <路径/文件名> <要创建的用户>。-c 参数表示如果文件不存在将创建。
(8)如果觉得敲命令行添加一个个用户痛苦的话,可以写一个脚本文件。我写了一个 addusers.cmd 文件,内容如下。
[code]
@echo off
:menu
cls
echo *****************************************************************
echo ** add subversion users script **
echo ** write by dingli, 2008-08-10 **
echo *****************************************************************
set /p user_name=input user name [Q/q: Quit]:
if "%user_name%"=="" goto menu
if "%user_name%"=="Q" goto quit
if "%user_name%"=="q" goto quit
if exist users htpasswd users %user_name%
if not exist users htpasswd -c users %user_name%
echo The user [%user_name%] is created.
echo.
pause
goto menu
:quit
echo.
echo you can add subversion users on command line (eg: addusers [ENTER]).
echo.
pause
exit
[/code]
你可以直接双击运行该文件,从而添加一个新的用户。但前提是你的 path 环紧变量必须设置 apache 安装目录的 bin 目录。
(二) 使用 subversion 自带的服务器。
只需在命令行下使用 subversion 安装目录下 bin 目录的 svnserve.exe 即可启动 subversion 服务。语法如下:
svnserve --daemon --listen-host <listen_host> --listen-port <listen_port> --root <repository_root>
<listen_host> 为需要监听的主机名或 IP 地址。
<listen_port> 为监听端口。
<repository_root> 为版本库根目录。
同样,如果觉得敲命令行很痛苦的话,可以写一个脚本文件。我写了一个 svnstart.cmd 文件,内容如下。
[code]
@echo off
:menu
cls
echo *****************************************************************
echo ** subversion start script **
echo ** write by dingli, 2008-06-19 **
echo *****************************************************************
set /p is_start=startup subversion server [Y/N]?
echo.
if "%is_start%"=="Y" goto startup_svn
if "%is_start%"=="y" goto startup_svn
if "%is_start%"=="N" goto donot_startup
if "%is_start%"=="n" goto donot_startup
goto menu
:startup_svn
set default_listen_host=127.0.0.1
set default_port=8888
set default_repository_root=E:/work/svn
set /p listen_host=select a listen host [default is 127.0.0.1]:
set /p listen_port=select a listen port [default is 8888]:
set /p repository_root=select a repository root [default is E:/work/svn]:
if "%listen_host%"=="" set listen_host=%default_listen_host%
if "%listen_port%"=="" set listen_port=%default_port%
if "%repository_root%"=="" set repository_root=%default_repository_root%
echo.
echo listen host [%listen_host%] on port [%listen_port%]
echo repository root is [%repository_root%]
echo subversion server startup successful [CTRL+C stop].
echo.
svnserve --daemon --listen-host %listen_host% --listen-port %listen_port% --root %repository_root%
:donot_startup
echo you can start subversion server on command line (eg: svnstart [ENTER]).
echo.
pause
exit
[/code]
你可以直接双击运行该文件,从而启动 subversion 服务。但前提是你的 path 环紧变量必须设置 subversion 安装目录的 bin 目录。