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 = passworduser2 = 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 格式,否则权限不生效