欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Windows下搭建svn服务器简明教程

程序员文章站 2022-07-09 16:57:12
svn(subversion)是一款的版本管理工具。目前,大多数开源软件都使用svn作为代码版本管理软件。svn除了能记住文件和目录的所有修改,还能将文件恢复到过去的某个版...

svn(subversion)是一款的版本管理工具。目前,大多数开源软件都使用svn作为代码版本管理软件。svn除了能记住文件和目录的所有修改,还能将文件恢复到过去的某个版本,并且可以通过检查历史知道数据做了哪些修改。简直是一个“时间机器”。

安裝svn程序

安装svn

svn下载地址:
本文举例svn安装目录为 c:\program files\subversion
安装完成后,将 c:\program files\subversion\bin 添加的系统环境变量path 中,可能系统会自动添加环境变量。

然后,重启机子。

创建本地svn

创建svn库

这里示例svn库地址 d:\svn\repository(文件夹要存在,否则后面的svn命令会失败)

cmd中使用命令 svnadmin create d:\svn\repository
命令完成后,在d:\svn\repository目录上,svn创建了多个文件夹,如conf,dav,db等等。

添加用户

进入d:\svn\repository\conf文件夹,编辑svnserve.conf文件,去除password-db = passwd 前的注释符#(前面不能有空白),表明密码从 passwd 中获取。

然后再编辑 passwd 文件,在[users]下面添加用户名,比如修改如下:

复制代码 代码如下:

[users]
# harry = harryssecret
# sally = sallyssecret
test = 123456

表明添加了一个用户,用户名为test,密码为123456

注册svn到系统服务

cmd中使用以下命令:

复制代码 代码如下:

sc create svnserve binpath= "c:\program files\subversion\bin\svnserve.exe --service -r d:\svn\repository" depend= tcpip start= auto
sc start svnserve


到这里,svn应该搭建完毕了。访问地址:svn://localhost

svn的配置优化

匿名访问

默认svn是可匿名访问的,只读操作。修改如下:

修改d:\svn\repository\conf\svnserve.conf 文件,将 anon-access = read 改成 anon-access = none

读写权限
默认svn是开放所有目录权限的。修改如下:

修改 d:\svn\repository\conf\svnserve.conf 文件,去除authz-db = authz 前的注释符#(前面不能有空白),表明授权从 authz 中获取。

然后再编辑 authz 文件,修改如下:

复制代码 代码如下:

[/]
test = rw
test2 = rw
* =

[/secret]
test2 =

表明 test 全部目录都可以读写,test2 只能读写非secret目录的所有内容,其他用户则没有授权。

svn端口

svn默认端口是3690,如何修改svn端口,如下:

复制代码 代码如下:

sc create svnserve8888 binpath= "c:\program files\subversion\bin\svnserve.exe --service -r d:\svn\repository --listen-port 8888" depend= tcpip start= auto
sc start svnserve8888

访问地址:svn://localhost:8888/

svn列表

svn列表可以通过apache生成,用于在浏览器访问svn内容,如下:

1、将c:\program files\subversion\bin下的 mod_dav_svn.so 和 mod_authz_svn.so, 复制到apache的 modules 文件夹下
2、修改 apache 配置文件 httpd.conf:

1)去掉下面两项前面的注释符#:

复制代码 代码如下:

#loadmodule dav_fs_module modules/mod_dav_fs.so
#loadmodule dav_module modules/mod_dav.so

2)添加下面内容:

复制代码 代码如下:

loadmodule dav_svn_module modules/mod_dav_svn.so
loadmodule authz_svn_module modules/mod_authz_svn.so
<location /svn>
  dav svn
  svnpath d:/svn/repository
</location>

重启apache后,apache会生成svn列表,访问地址: