SVN:安装与配置

来源:互联网 发布:js 7.62毫米狙击枪 编辑:程序博客网 时间:2024/05/17 23:49

1.1         安装服务器端程序

①服务器端程序版本

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

②下载源码包

Apache组织自己维护更新的只是Subversion的源码,各个版本的源码包的下载地址是:http://subversion.apache.org/download/

Subversion源码是使用C语言开发的。

③下载二进制安装包

Subversion在不同平台下的二进制包是由不同组织构建实现的。

服务器端程序的下载地址可以使用:http://sourceforge.net/projects/win32svn/files/latest/download

下载到的文件是:Setup-Subversion-1.8.9-1.msi

④双击运行Setup-Subversion-1.8.9-1.msi,目录要求无空格

⑤安装程序会自动配置Path环境变量

D:\DevInstall\Subversion\bin

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

⑥验证是否安装成功

在命令行输入:svn --version

看到如下信息就表示服务器端程序安装成功

1.2        配置版本库

①为什么要配置版本库?

Subversion是将文件数据信息保存到版本库中进行管理的,为了满足用户的不同需求,Subversion允许用户对版本库目录进行定制。

②在一个非中文无空格目录下创建一个文件夹,作为版本库的根目录。

例如:D:\DevRepository\Subversion

③在版本库根目录下创建与具体项目对应的子目录——这样做的目的是使一个SVN服务器能够同时管理多个项目,而不是为每一个项目搭建一个SVN服务器——这显然太浪费资源了。

例如:D:\DevRepository\Subversion\CRM

             D:\DevRepository\Subversion\ERP

             D:\DevRepository\Subversion\OA

④创建版本库

命令格式

主命令

子命令

参数1

svnadmin

create

仓库路径

举例

svnadmin create D:\DevRepository\Subversion\StuSys

⑤版本库目录结构

版本库创建成功后会在指定目录下产生如下的目录结构

1.3         启动服务器端程序

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

②命令行方式

[1]命令格式

主命令

参数1

参数2

参数3

svnserve

-d表示后台执行

-r表示版本库根目录

D:\DevRepository\Subversion

举例

svnserve -d -r D:\DevRepository\Subversion

[2]验证服务是否启动

SVN服务监听3690端口,打开一个新的cmd窗口,使用netstat -an 命令查看3690端口是否被监听

[3]命令行方式的缺陷是:只要运行服务器端程序的命令行窗口一关闭,服务就停止了,很不方便,而且每次开机都需要手动启动。

③注册Windows服务

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

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

[3]命令格式

主命令

子命令

参数1

参数2

参数3

参数4

sc

create

服务名

binpath= “运行服务所需要的二进制文件路径以及运行该二进制文件的命令行参数

start= auto

表示自动启动

depend= Tcpip

表示依赖Tcpip协议

[注意:在这个命令中,等号左边都没有空格,右边都有一个空格!]

[4]binpath组成结构说明

svnserve.exe路径

svnserve命令参数1

svnserve命令参数2

svnserve命令参数3

SVN安装目录\bin\svnserve.exe

--service

表示以服务方式启动Subversion

-r

表示版本库根目录

版本库目录

[5]关于“版本库目录”

单仓库

指定与具体项目对应的仓库目录

例如:D:\DevRepository\Subversion\CRM

只能为一个项目服务

多仓库

指定版本库的根目录

例如:D:\DevRepository\Subversion

可以为多个项目服务

[6]最终命令举例【单仓库就指定到版本目录下,多仓库可以指定到版本目录下,也可上级目录,访问的时候指定】

sc create MySVNService binpath= "D:\DevInstall\Subversion\bin\svnserve.exe --service -r D:\DevRepository\Subversion" start= auto depend= Tcpip

●在Win7及以上系统中,运行该命令需要管理员权限,否则会得到如下错误提示

●解决的办法是以管理员身份运行cmd命令行窗口即可

●在防火墙或电脑卫士提示阻止时,选择允许

●此时查看当前系统中的服务,可以看到我们刚刚创建的服务,但此时它还没有启动,如果创建失败,需检查sc命令是否正确

●启动此服务

启动服务的命令格式如下:

格式

sc start 服务名

举例

sc start MySVNService

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

●如果启动失败,那很有可能是binpath中的内容有错误,此时只能将已经创建的服务删除,重新创建。

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

格式

sc stop 服务名

举例

sc stop MySVNService

●删除服务的命令格式如下:

格式

sc delete 服务名

举例

sc delete MySVNService

●删除、启动、停止服务同样需要管理员权限



Linux下安装SVN服务器

安装步骤如下:
1、yum install subversion

2、输入rpm -ql subversion查看安装位置,如下图:
 linux(centos)搭建SVN服务器 - 小木 - 青番茄乐园
我们知道svn在bin目录下生成了几个二进制文件。
输入 svn --help可以查看svn的使用方法,如下图。
linux(centos)搭建SVN服务器 - 小木 - 青番茄乐园


3、创建svn版本库目录
mkdir -p /var/svn/svnrepos

4、创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件
linux(centos)搭建SVN服务器 - 小木 - 青番茄乐园

5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件

6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan

7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。

8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

9、启动svn版本库
svnserve -d -r /var/svn/svnrepos


#使用默认端口3690启动svn服务
svnserve -d -r /var/svn/svnrepos
 
# 如果出现
#svnserve: Can't bind server socket: Address already in use
#说明端口被占用,换其他监听端口就行了:
 
#使用9999端口启动svn服务
svnserve --listen-port 9999 -d -r /var/svn/svnrepos 
 
#-d 表示后台运行
#-r 表示数据仓库目录

Eclipse svn插件或者软件查看版本历史时Item is not readable,在eclipse会弹出错误框
svnserve.conf 文件中,设置anon-access = none,如果有的把注释去掉,没的自己手动加进去就可以了.


10、在windows上测试
新建一个测试文件夹,在该文件夹下右键选择 SVN checkout如下图(要事先安装TortoiseSVN):
linux(centos)搭建SVN服务器 - 小木 - 青番茄乐园
填写SVN的地址,如下图:
 
linux(centos)搭建SVN服务器 - 小木 - 青番茄乐园
输入密码,如下图:
 
linux(centos)搭建SVN服务器 - 小木 - 青番茄乐园
 
重启和停止的脚本
http://www.oschina.net/code/snippet_1271978_25228


写成一个自动脚本run.sh:
echo 'killing svnserve'
killall svnserve
echo 'starting svnserve listening on 9999 in the repos /var/svn/cqdzgrepos....'
svnserve --listen-port 9999 -d -r /var/svn/cqdzgrepos
echo 'start  finished.'

0 0