win11 安装Subversion与配置 svn服务端

一、下载

  • 服务器端程序版本
    目前Subversion的最新版本是 1.9.0-alpha2,这是一个测试版。官方网站推荐使用的版本是1.8.9,原话是:The best available version of Apache Subversion is: 1.8.9

  • 下载源码包 https://subversion.apache.org/download.cgi
    下载到的文件是:Setup-Subversion-1.8.14.msi

二、Subversion安装与配置

双击运行Setup-Subversion-1.8.14.msi

不整合Apache服务器可以忽略此选项
win11 安装Subversion与配置 svn服务端_第1张图片
win11 安装Subversion与配置 svn服务端_第2张图片

SVN 安装目录不能有中文,和空格:即 Program Files (x86) 不行

空格原因:我在旅投科技 搭建就出问题了 ,半天

5. 安装完成会自动配置Path环境变量,这点比较好

D:\Subversion\bin

所以bin目录下的可执行文件可以在dos任意目录下运行。

6. 验证是否安装成功

在命令行输入:svn --version

看到如下信息就表示服务器端程序安装成功
win11 安装Subversion与配置 svn服务端_第3张图片

三、配置版本库

要先创建、启动服务,再回头创建各个子版本库,否则会报错:unable to connect to repository 期望格式1到6,发现格式8

1. 为什么要配置版本库?

  • 在一个非中文无空格目录下创建一个文件夹,作为版本库的根目录。
    例如:D:\Repository\Subversion
  • 在版本库根目录下创建与具体项目对应的子目录——这样做的目的是使一个SVN服务器能够同时管理多个项目,而不是为每一个项目搭建一个SVN服务器——这显然太浪费资源了。
例如:
  D:\Repository\Subversion\CRM

  D:\Repository\Subversion\ERP

  D:\Repository\Subversion\OA

先创建好文件夹层级目录(子版本库),不要执行版本库命令,回头再来执行

要先创建、启动服务,再回头创建各个子版本库,否则会报错:unable to connect to repository 期望格式1到6,发现格式8

  • 创建版本库

命令格式
在这里插入图片描述
版本库目录结构

版本库创建成功后会在指定目录下产生如下的目录结构
win11 安装Subversion与配置 svn服务端_第4张图片

3.3 启动服务器端程序

①SVN服务器必须处于运行状态才能响应客户端请求,帮助我们管理项目文件。所以我们必须将SVN服务器启动起来。启动SVN服务器有两种方法,一个是命令行方式,一个是注册Windows服务。

②命令行方式

[1]命令格式
在这里插入图片描述

Subversion安装与配置
8
[2]验证服务是否启动

SVN服务监听3690端口,打开一个新的cmd窗口,使用netstat -an 命令查看3690端口是否被监听
win11 安装Subversion与配置 svn服务端_第5张图片
[3]命令行方式的缺陷是:只要运行服务器端程序的命令行窗口一关闭,服务就停止了,很不方便,而且每次开机都需要手动启动。

③注册Windows服务

[1]将SVN服务端程序注册为Windows服务,就可以让SVN服务随系统一起启动,克服了命令行方式的不足。

[2]注册Windows服务需要利用XP、2000以上系统自带工具Service Control,执行文件是sc.exe,注意这个命令不是SVN的命令。

[3]命令格式 depend= Tcpipip 网络层协议 Tcpip
win11 安装Subversion与配置 svn服务端_第6张图片
[4]binpath组成结构说明

在这里插入图片描述
在这里插入图片描述
[5]关于“版本库目录”

在这里插入图片描述
[6]最终命令举例
在这里插入图片描述

在Win7及以上系统中,运行该命令需要管理员权限,否则会得到如下错误提示
在这里插入图片描述
在防火墙或电脑卫士提示阻止时,选择允许

win11 安装Subversion与配置 svn服务端_第7张图片
此时查看当前系统中的服务,可以看到我们刚刚创建的服务,但此时它还没有启动,如果创建失败,需检查sc命令是否正确
在这里插入图片描述

启动此服务

启动服务的命令格式如下:
在这里插入图片描述

打开命令行窗口运行netstat –an查看3690端口是否被监听

如果启动失败,那很有可能是binpath中的内容有错误,此时只能将已经创建的服务删除,重新创建。
在这里插入图片描述

删除服务之前,最好先停止服务。停止服务的命令格式如下:

在这里插入图片描述
删除、启动、停止服务同样需要管理员权限

D:\Repository\Subversion

SVN 安装目录不能有中文,和空格:即 Program Files (x86) 不行
## 自己示例
sc create SVNService binpath= "D:\Subversion\bin\svnserve.exe --service -r D:\Repository\Subversion" start= auto depend= Tcpipip

## LTKJ-示例
sc create SVNService binpath= "C:\MVCC\Subversion\bin\svnserve.exe --service -r D:\repos" displayname= "SVNService" depend= Tcpip start= auto

## 最后启动
sc start SVNService
## 停止、再重新启动
sc stop SVNService
## 创建错了 重来
sc delete SVNService 

C:\Windows\System32>netstat -ano | findstr 3690
  TCP    0.0.0.0:3690           0.0.0.0:0              LISTENING       12244

C:\Windows\System32>

win11 安装Subversion与配置 svn服务端_第8张图片

统一认证、鉴权设置

6. 为了便于管理,将所有版本库的密码和权限设置在同一个文件下面,操作步骤如下:

6.1 取出project1下面conf文件夹下的authz和passwd两个文件到svnroot根目录下面

6.2 修改每个版本库目录conf文件夹下面的svnserve.conf文件, 将

# anon-access = read ,#auth-access = write ,# password-db = passwd,#authz-db = authz 
修改为:

  anon-access = none ,auth-access= write,password-db = ../../passwd,authz-db = ../../authz

   (password-db = ../../passwd,authz-db = ../../authz代表相对路径而非绝对路径)
7. 定义一下几个角色用来测试

7.1 配置管理员(svnadmin),用来管理整个库

7.2 项目经理(manage),用来相关管理文档

7.3 开发人员 (dev),测试开发是否正常

8. 下面添加角色

打开svnroot目录下的passwd文件,创建方法是在[user]下面添加 username = passwd,记得“=”前后的空格,如下图:(svnadmin控制所有项目,统一管理)
win11 安装Subversion与配置 svn服务端_第9张图片

9. 为角色分配权限:假设(quxin是project1的项目经理,huzhixin是project2的项目经理,dev1、dev2是project1的开发人员,dev3、dev4是project2的开发人员,test1是project1的测试人员,test2是project2的测试人员)

LTKJ 库目录及具体权限如下图所示:

库目录权限分组:

[groups]
admin_group = admin
java_group = chenming,majihua,wangl,baosanqing
synthesis_group = wangzhenlong,liweifan,zhouxiaolin,anxiaoming,houdongmei,zhuwanqing
manager_group = yangfule,gehongyan,wangzonghui
pre_sales_group = maxun,tianshunda

具体权限:(根目录下,svnadmin拥有所有权限,其他人只有读权限,要设置子目录权限,

需设置子目录上级的权限方可,设置个别文件权限如下:)


# 指定所有的版本库默认只读,admin_group组可读写
[/]
@admin_group = rw

# 1. 新员工  指定对版本库 develop的 子目录的权限
[develop:/docs]
baosanqing = rw

# 1.指定对版本库 develop 根目录的权限
[develop:/]
@admin_group = rw
@java_group = rw

# 2.指定对版本库 doc 根目录的权限
[synthesis:/]
@admin_group = rw
@synthesis_group = rw

# 3.指定对版本库 doc 根目录的权限
[manager-office:/]
@admin_group = rw
@manager_group = rw
 
# 7.指定对版本库 
[公共:/]
@admin_group = rw
@java_group = rw
@synthesis_group = rw
@manager_group = rw
@pre_sales_group = rw
@financial_group = rw
@marketing_group = rw

启动SVN服务,可在dos命令里启动,也可把SVN服务安装在服务管理里面

把服务在DOS命令里启动方法:svnserve –d –r E:\svnroot

如若把服务安装在服务管理里面,简单的办法,下载一个SVNService.exe文件,放到subversion安装目录的bin文件夹下面,然后在dos命令里运行,

运行方法如下: SVNService –install –d –rE:\svnroot

  1. 安装客户端,连接服务器到要访问的库,假如访问project1:svn://172.16.26.28/project1 ,用同样的方法访问project2,依次类推到更多的版本库项目。

  2. 工具

SVN 服务器端:Subversion 1.5 ,客户端 TrotoiseSVN 1.5

  1. 下载地址:www.iusesvn.com ,你需要注册方可进入下载去下载相关版本的工具。

  2. 相关角色的定义

新员工增加权限

注: 一定要看清 svnserver.conf 指定的鉴权文件的路径是 当前目录 还是公共目录,加了新员工账号密码不生效

1. 新员工 指定对版本库 develop的 子目录的权限 authz 文件内

[develop:/docs]
baosanqing = rw

问题 svn show log查看失败

win11 安装Subversion与配置 svn服务端_第10张图片

解决办法如下
1.对服务器SVN做以下修改:

(1)找到你SVN版本库下conf文件夹下的svnserve.conf文件;

(2)打开svnserve.conf文件,将其中名为anon-access的一项设置为 anon-access = none。

这样的话,日志文件即可显示正常。

2.对于第一种方案,需要专门修改服务器的配置,但是一般服务器不会迁就客户端去修改配置,这时需要我们重新安装和服务器配套的svn客户端版本,一般是svn版本过高导致

你可能感兴趣的:(svn,服务器,apache)