Subversion 是一个集中式的信息共享系统。版本库是 Subversion 的核心部分,是数据的中央仓库。版本库以典型的文件和目录结构形式文件系统树来保存信息。任意数量的客户端连接到Subversion 版本库,读取, 修改这些文件。客户端通过写数据将信息分享给其他人,通过读取数据获取别人共享的信息。
Subversion,CVS和一些版本控制系统使用拷贝-修改-合并模型,在这种模型里,每一个客户
联系项目版本库建立一个个人工作副本—版本库中文件和目录的本地映射。用户并行工作,修改各
自的工作副本,最终,各个私有的拷贝合并在一起,成为最终的版本,这种系统通常可以辅助合并
操作,但是最终要靠人工去确定正误。
一 安装软件
服务器(Win32Svn):Setup-Subversion-1.6.13.msi(http://subversion.apache.org/packages.html)
客户端:TortoiseSVN-1.6.11.20210-win32-svn-1.6.13.msi(http://tortoisesvn.net/downloads)
语言包(不必须):LanguagePack_1.6.11.20210-win32-zh_CN.msi
eclipse插件(不必须):site-1.6.14.zip
二 命令
//建版本库 先CD到要建的目录
svnadmin create d:/svnrepos
启动svn服务:
-----------------------------------------------------------------------------------------------------------
1、svnserve -d -r d:/svnrepos
2、以系统方式启动服务:
方法就是利用windows xp,2000自带的工具service control,执行文件是sc.exe。在cmd窗口输入命令:
sc create svnservice binpath= "D:/Program Files/Subversion/bin/svnserve.exe --service -r E:/svnrepos" depend="tcpip" start="auto"
binpath指定svnserve的路径和命令。注意其参数是--service(windows 服务方式),而不是--daemon(后台模式). 不能用-d(--daemon)和-i,-t等参数。start= "auto"表示服务自动启动。注意,等于号的左边无空格,而右边必须有一个空格。
执行完后,系统会列出sc create的格式及所以参数,表示服务创建成功,如图:
然后执行
net start svnservice
启动服务。系统返回
svnservice 服务正在启动 .
svnservice 服务已经启动成功。
执行
net stop svnservice
停止服务,系统返回:
svnservice 服务正在停止.
svnservice 服务已成功停止。
执行
sc delete svnservice
删除服务。创建相同服务前必须删除。
---------------------------------------------------------------------------------------------------------------
//客户端访问
SVN://127.0.0.1
//与eclipse整合,要自己安装插件
http://subversion.tigris.org/
三 配置
配置文件在 d:/svnrepos/conf
1)svnserve.conf
这个文件是核心的控制文件,起到管理作用
打开用户管理和权限管理,去掉下面俩行注释
password-db = passwd
authz-db = authz
把anon-access = read改为anon-access = none,意思是说没有用户名与密码的不能读写
2)passwd
用户配置文件,里面存放用户名和密码
格式如下"用户名=密码",例如下面2个用户:
fsk = 111111
hh =123
test = test
3)authz
权限配制文件,对库和目录的读写进行具体的配制
[groups] #下面是直接定义组的成员,例如
admin_group = fsk,hh //给组分配用户
admin_test = test
[/] #配置根目录的权限
@admin_group = rw //给组分配具体的权限
"* =" //没配置的没有访问权限,如果有权限,应该设置上rw
通过客户端,在版本库的根目录下建jubao文件夹
[/jubao] //具体文件夹的权限,一般也是具体项目的文件夹
fsk = rw //给账户分配权限
* = //如果加上这行,那么根目录的组admin_group,就不具备这个目录的权限了。要想让父目录有访问权限,也是一样的,要么就如下配置:" * = rw" 或者注释掉本行
@admin_test = r //admin_test组有读的权限
hh = rw //hh有读写的权限
四 导入
右击你待导入的目录TortoiseSVN->Import(导入)...,然后URL里输入svn://127.0.0.1即可。
五 约定俗成
在svn中标签和分支都源于copy命令。
3个约定俗成的目录:
•trunk:主干
•branches:分支
•tags:标签
六 主要网站
http://subversion.tigris.org/
http://subversion.apache.org/