svn服务端的安装与使用方式简介(一)

1.   SVN的安装

第一步: 点击Setup-Subversion-1.6.5.msi 

第二步:在F盘根目录下建立文件夹software/SVN

第三步:将SVN安装到F:\software\svn目录下

第四步:设置环境变量(只针对绿色版)

 变量名:path

 变量值:F:\software\svn\bin

第五步:在系统的命令行执行命令:

svnserve –-version

将显示程序的版本信息

2.   SVN的配置

在F:\software路径下建立一个repository文件夹

在F:\software\repository路径下再建立一个SVN(用来存放数据仓库)和CVS文件夹---如果不用CVS也可以直接使用repository作为根目录存放数据仓库

svnadmin create F:\software\repository\svn\mydb(仓库名称)这时我们会发现在F:\software\repository\svn路径下多了一个名称为mydb的文件夹,双击进去之后会发现有一些文件和文件夹,那么这时就证明我们的数据仓库已经建立好了。

上述这步操作也可用TortoiseSVN的快捷键来完成,即安装TortoiseSVN后,在F:\software\repository\svn路径下鼠标右键选择TortoiseSVN--->create repository here,如果是多仓库模式,需要先自己手动建立不同文件夹作为仓库名称,然后在创建数据仓库。

F:\software\repository\svn\mydb这一路径下的文件及文件夹解析:

db目录:  就是所有版本控制的数据存放文件
hooks目录:  放置hook脚本文件的目录
locks目录:   用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端
conf目录:     是这个仓库的配置文件(仓库的用户访问帐号、权限等)
format文件  是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号

启用svn服务的两种方式:

一、命令行启动,我们使用服务器端命令 svnserve

svnserve -d -r F:\software\repository\svn\mydb(单仓库)

启动后查看端口使用情况,根据端口来判断SVN是否启动成功

netstat -an

看到3690端口服务,说明启动成功

二、安装svn后配置windows自动启动服务(多仓库)

在命令行内键入:

sc create SVN-Service binpath= "F:\software\svn\bin\svnserve.exe --service -r F:\software\repository\svn" displayname= "SVN-Service" start= auto depend= Tcpip

binpath 指定svnserve 的路径和命令

start= auto 表示服务自动启动。注意:等于号的左边无空格,而右边必须有一个空格

Displayname----服务的显示名称、start= auto ---表示自动启动、depend
在此命令中-r(--root)项目版本仓库的根目录----数据仓库的路径

3.   SVN通过基于服务的方式使用

查看服务是否添加成功,可以选择windows 控制面板--》》管理工具--》》服务 会发现列表中有SVN-service服务

启动服务   net start SVN-Service   也可手动去启动服务

如果要删除服务    sc delete SVN-Service

当我们配置成多仓库的时候,如何访问每一个具体的仓库呢?

svn://127.0.0.1/mydb

如果配置成了单仓库模式那么直接访问:svn://127.0.0.1/即可

4.   当以上完全配置成功以后,就完成了基本的服务端的配置,默认的SVN会配置一个客户端,但是是基于命令行的方式使用

›svn checkout -从版本库取出一个工作拷贝

›svn commit -将改动的文件提交到版本库

›svn update -更新你的工作拷贝

›svn add-向版本库中添加新文件

›svn delete-从版本库中删除文件

›svn revert-取消所有的本地编辑

›svn info-显示本地或远程条目的信息

svn list-列出版本库目录的条目

›svn status-查看当前工作区状态

›svn help-获取帮助信息

5.   Subversion版本控制系统的一个免费开源客户端TortoiseSVN

在F:\software路径下建立一个名称为TortoiseSVN目录,然后将TortoiseSVN安装到这一目录下,然后重启电脑

这个时候就完成了SVN以及其GUI客户端的完全配置。

6.   如何从服务器获取到项目?如何将已有的项目纳入SVN管理?

首先在磁盘中建立一个文件夹作为存放数据的地址,然后鼠标右键选择SVN Checkout

然后在URL of repository:中输入具体的数据仓库的地址:svn://127.0.0.1/mydb,再在Checkout directory中输入要存放数据的地址(刚建立好的)

其它选项不必修改,然后选择OK选项。

这样就完成了从数据仓库中获取数据了。

-------------------------------------------------------------------------

要想将我们自己的项目纳入的SVN管理,我们可以先在服务器端创建一个数据仓库,然后同样在客户端建立一个文件目录,然后选择SVN Checkout

URL of repository 内填写我们新创建好的数据仓库地址,然后选择OK,这个时候我们会发现在Checkout directory指定的路径下会多出一个.svn的文件夹(可能是隐藏
的),这个时候我们可以将我们需要纳入SVN管理的文件或者文件夹拷贝到这一目录下,然后我们会发现这个文件的上面会多一个蓝色问号标识,我们鼠标右击该文件
或文件夹,选择TortoiseSVN选项,我们发现在弹出的菜单中有一个add选项,单击该选项然后再刷新,我们会发现该文件或文件夹上的标识变成了蓝色的加号,我们再次鼠标右击该文件,选择SVN commit即可。

7.   配置SVN使用权限

svnserve.conf    定义所有认证和授权政策
passwd     存放项目成员帐户信息
authz     主要是做复杂的群组权限控制

打开svnserve.conf文件,配置下属几个参数(原参数都为注释起来的,可以去掉前面的#,但是一定要把空格也去掉)
# anon-access = read
anon-access = none               ------表示 匿名用户没有任何权限

# auth-access = write              
auth-access = write                 ------表示 通过认证的用户具有写的权限

# password-db = passwd
password-db = passwd         ------表示用户名和密码的文件是 passwd 这一文件

# authz-db = authz
authz-db = authz                      ------表示 做SVN用户和用户组的权限控制

打开passwd文件,配置SVN的用户名和密码,通常是以键值对的形式,但是有一点缺陷就是密码为明文。使用apache的方式可避免这一问题。
user1 = password
user2 = password2

打开authz文件
首先配置用户组和用户,用户以逗号隔开
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
usersgroup = user1,user2,user3            ------配置一个用户组,包含3个用户

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

[mydb:/]                                    ------如果只需要对mydb进行管理,此配置即可。

@usersgroup = rw                ------表示usersgroup用户组有读写权限
user4 = r                                 -------如果想对某一用户设置特殊权限或者说是与用户组内不同权限,可以直接对其进行单独配置,也可以重新创建用户组并配置其权限
* = r                                          -------表示除usersgroup以为其他用户只有读的权限,如果要配置其他用户无任何权限,那么将其配置为 空 即可

如果mydb目录下又包含了其他的许多文件,这个时候想对其内文件进行细粒度权限控制,就要增加如下进行配置:
[mydb:/source]
user5 = rw
* = 
    

如果权限保护目录为中文,则必须将authz文件利用ultraedit工具转存为UTF-8 无BOM 格式,否则权限不生效


上一篇:【C#】VS2015开发环境的安装和配置(二)2016-08-03更新


下一篇:hibernate学习笔记(三)