现在的位置: 首页 > 综合 > 正文

SubVersion服务器Windows安装过程

2017年12月27日 ⁄ 综合 ⁄ 共 4625字 ⁄ 字号 评论关闭

1.环境和软件准备

操作系统: windows 7

Window-Subvsersion http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
    Windows 常用客户端 TortoiseSVN http://tortoisesvn.net/downloads    

下载 subversion 服务器软件和客户端,并默认安装。

我下载到了Setup-Subversion-1.5.5.msi,安装路径 d:/software/Subversion/

常用客户端 TortoiseSVN原来就安装了

2.配置管理

2.1. 创建仓库 (svnadmin) 

在硬盘上创建个空目录,作为 SVN 的仓库目录。如: d:/svnroot/repository 

下面使用两种方式创建仓库的初时文件结构和存储方式。命令方式和 TortoiseSVN 客户端方式,后面所有文档都采用两种方式说明,其功能完全相同。请根据实际情况选择使用。

命令方式( DOS 下):

默认方式,采用 FSFS 方式存储数据,这是推荐方式,管理和迁移相对 bdb 方式简单
svnadmin create d:/svnroot/repository

svnadmin create –fs-type bdbd:/svnroot/repository
上为bdb的文件系统方式一般默认是nativeFS NTFS

TortoiseSVN 客户端

版本的 SVN1.5.5 

1. 使用 window exporer 或我的电脑,定位到 d:/svnroot/repository,并确保本目录为空。
2. 
在本目录下,右键菜单中选择“ TortoiseSVN ” > “ Create repository here… ”
3. 
检查本目录下是否有生产的系统文件和文件夹,如果有,成功!

2.2. 配置服务
进入仓库目录下的 conf 文件夹。也就是 d:/svnroot/repository/conf
里面有个默认的配置文件: authz  passwd  svnserve.conf
svnserve.conf 
控制 svnserve 的启动配置选项,可以配置认证和授权方式,典型的配置是设置由 authz 控制授权, passwd 控制认证的方式来控制访问权限。也可以使用匿名方式,但不推荐。
使用 authz  passwd 的典型配置:
请特别注意:以下三个配置文件的配置,每行有效配置前不能有空格,不然配置会失败。
服务配置文件 svnserve.conf
……
### 
匿名方式不允许访问
anon-access = none
……
### Uncomment the line below to use the default password file.
### 
表示访问仓库的认证有文件 passwd 提供的账户确定
password-db = passwd
……
### Uncomment the line below to use the default authorization file.
### 
表示认证后的账户访问权限由文件 authz 定义
authz-db = authz
### This option specifies the authentication realm of the repository.
……
#realm = My First Repository

认证配置文件 passwd
passwd 
文件实际提供访问本仓库的账户管理,文件格式就是 ini 方式的格式
[users]
# harry = harryssecret
# sally = sallyssecret
testuser1=testuser1

testuser2=testuser2 


这表示本仓库配置了二个用户及:其中一个用户testuser1, 他的访问密码是 testuser1
访问密码可以使用明文,也可以使用 htpasswd.exe apache 服务器提供的工具方法,安装 apache 服务器后,在其 bin 目录中有该程序文件)进行加密处理。


授权配置文件 authz 

该文件负责认证后的用户的权限控制,配置稍微复杂,但其实也就是个 ini 配置文件而已。
典型配置:
# groups 
段提供配置组的功能但组成员必须是passwd 文件中定义的用户才有效。可以对组
进行权限控制,所有组成员具有组对应的访问权限。
[groups]
表示定义了一个管理组叫 admin_group, 包括harry  sally  admin_group 前千万不能有空格
admin_group=testuser1
dev_group=testuser2

下面就是定义具体仓库下目录的访问权限
一般对管理员来说都具有整个仓库的读写权限,一般人员对整个敞开具有读取权限,下面
就是这样的配置 ,[/] 表示整个仓库的根,组的引用使用,对应的权限可以是 r,w,rw 或空
[/]
@admin_group = rw
@dev_group = rw
* = r

[/test_project]
@admin_group = rw
@dev_group = rw
* = r

[repository:/]
@admin_group = rw
@dev_group = rw
* = r

以上的配置完成后,就可以启动服务器了,下面说明服务器的启动。
注意,以上 authz  passwd 文件在管理中因为具体项目的加入和人员的变动会经常的修改,这也是 SVN 管理主要的工作

2.3. 启动服务 (svnserve)
Svn 
服务器一般有三种方式, svnserve apache  SSH 
其中常用的有 svnserve  apache 方式。本文只以 svnserve 方式讲解。总的来说 svnserve 是最高效的方式,一般应用于内部开发网中使用。
Apache 
方式因为可以很好的部署在 internet 上,所以公网使用最方便,但配置稍微相对复杂点点,呵呵~~。三种方式具体的优缺点,请参考本文后面的参考文档。

命令方式( DOS 下):
svnserve –d –r d:/svnroot/repository
svnserve –d –r "d:/svnroot/repository"

-d 参数是以独立服务的方式启动
-r 
是制订要加载的仓库的物理路径

但这个方法我用就不行报 使用 "svnserve --help" 得到用法

Windows 系统服务
添加为系统服务

方法1(推荐)
Windows NT中(包括Windows XP,Windows 2000, Windows 2003 Server, Windows vista)本身包含了一个安装服务的工具,叫做"Service Control",也就是sc.exe
1.
安装为服务:
:我的Subversion安装在"C:/Program Files/Subversion",版本库在"d:/svnroot/repository",而我希望对应的Subversion服务名为svnservice,安装这个svn服务的命令就可以这样写:

SC create svnservice binPath="/"C:/Program Files/Subversion/bin/svnserve.exe/" --service--root /"E:/svnroot/repository/"" displayname="SVNService" depend= Tcpip

请注意,因为便于察看,上面的命令分为多行,但在实际执行时应该在一行里。另外,在以前启动svnserve时会使用"-d"选项,也就是守护进程模式,在这里不能使用,会导致服务无法启动。同样,"-i""-t"选项也不能使用。
另 外还有两点需要小心处理。首先,如果路径中包括空格,一定要用“/”处理“"”号,例如上面的例子中如果svnserve.exe“C: /Program Files/Subversion/bin/svnserve.exe”中,则命令应该写为“binpath= "/"C:/ProgramFiles/Subversion/bin/svnserve.exe/"”“”中的内容):
SC create svnservice binPath= "/"C:/ProgramFiles/Subversion/bin/svnserve.exe/" --service --root/"E:/svnroot/repository/"" displayname= "SVNService"depend= Tcpip
其次,sc对选项的格式还有要求,例如“depend=Tcpip”不能写为“depend = Tcpip”“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。

2.启动服务
在命令行窗口执行完这个命令之后,服务还没有启动,你可以继续运行"net startsvnservice"启动这个服务。

3.停止服务
然后使用"net stop svnservice"停止服务。

4.删除服务
如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc deletesvnservice""svnservice"就是我们创建服务时使用的名字。

5.配置服务是自动启动
默认情况下安装的服务不会随Windows的启动而启动,为了使svn服务能够随Windows启动而启动,需要修改一下"sc create"命令(首先要删除),增加"start= auto"选项:

SC create svnservice binPath="/"C:/Program Files/Subversion/bin/svnserve.exe/" --service--root /"E:/svnroot/repository/"" displayname="SVNService" depend= Tcpip start= auto
SC create svnservice binPath= "/"C:/Program Files/Subversion/bin/svnserve.exe/"--service -r /"E:/svnroot/repository/"" displayname="SVNService" depend= Tcpip start= auto

当然你也可以使用图形化的工具修改服务的属性,你可以在开始->运行...”中执行"services.msc",然后在界面中修改。

vista下要以管理员的权限运行CMD, 否则会出现权限问题.

subversion1.4 后的版本,提供了安装为服务的支持

可以参考本文安装:

注意以下方法没有实际做过

------

导入项目

E:/projects/test_project下建 temp目录 结构如下

temp
|--test_project
    |--branches
    |--tags
    |--trunk

temp目录上点 TortoiseSVN -> Import
输入 svn://192.168.3.213
和用户名和密码后ld项目导入成功

 

 

*******************************************************************

我照着上面得弄的,结果client访问不了server

后来在url中添加了根目录就可以了。

svn://IP[:port]/svnrootname/projectname

抱歉!评论已关闭.