您的位置:首页 > 运维架构 > Apache

SubVersion服务器Windows安装过程 收藏

2010-04-13 16:32 756 查看





 
SubVersion服务器Windows安装过程
收藏

 SubVersion服务器Windows安装指南

在办公室的台式机上安装了svn服务器

1.    环境和软件准备

操作系统: windows vista sp1

Window-Subvsersion : http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91

Windows 常用客户端 TortoiseSVN : http://tortoisesvn.net/downloads

下载 subversion 服务器软件和客户端,并默认安装(可以重新启动操作系统,以更新图标显示)。

我下载到了Setup-Subversion-1.5.5.msi, 安装路径 C:/Program Files/Subversion/

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

2.    配置管理

2.1. 创建仓库 (svnadmin)

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

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

命令方式( DOS 下):

# 默认方式,采用 FSFS 方式存储数据,这是推荐方式,管理和迁移相对 bdb 方式简单

svnadmin create E:/svnroot/repository



svnadmin create –fs-type bdb E:/svnroot/repository

上为bdb的文件系统方式, 一般默认是native的FS即 NTFS

TortoiseSVN 客户端

版本的 SVN1.5.5

1. 使用 window exporer 或我的电脑,定位到 E:/svnroot/repository ,并确保本目录为空。

2. 在本目录下,右键菜单中选择“ TortoiseSVN ”- > “ Create repository here… ”

3. 检查本目录下是否有生产的系统文件和文件夹,如果有,成功!

2.2. 配置服务

进入仓库目录下的 conf 文件夹。也就是 E:/svnroot/repository/conf

里面有 3 个默认的配置文件: 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 E:/svnroot/repository

svnserve –d –r "E:/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",版本库在"E:/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:/Program Files/Subversion/bin/svnserve.exe/"”(“”中的内容):

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

其次,sc对选项的格式还有要求,例如“depend= Tcpip”不能写为“depend = Tcpip”或“depend=Tcpip”,也就是“=”前不能有空各,而后面必须有空格。

2.启动服务

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

3.停止服务

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

4.删除服务

如果服务安装的有问题,你可能需要删除服务。要删除前面添加的服务,只需要运行"sc delete svnservice","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

 

subversion version: 1.6.6

*******************************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息