1、什么是SVN?
Subversion(SVN)是一个开源的版本控制系统。
2、SVN服务器搭建
2.1、使用yum安装SVN包
2.2、创建SVN版本库yum install -y subversion svnserve --version //验证安装版本
2.3、SVN配置mkdir svn根目录路径 svnadmin create svn根目录路径/版本库名称
创建版本库后,在版本库的conf目录下会生成3个配置文件1)svnserve.conf:svn服务配置文件。
该文件配置项分为以下5类:
anon-access:控制非鉴权用户访问版本库的权限
auth-access:控制鉴权用户访问版本库的权限
password-db:指定用户名口令文件名
authz-db:指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制
realm:指定版本库的认证域,即在登录时提示的认证域名称。若两个版本库的认证域相同,建议使用相同的用户名口令数据文件
将其内容修改为:
2) passwd:用户名口令文件,用于配置允许访问的用户[general] anon-access = none auth-access = write password-db = svn根目录/etc/passwd //passwd和authz的名字是由那两个文件决定的,可以修改。 authz-db = svn根目录/etc/authz realm = 版本库名
注意:对用户配置文件的修改立即生效,不必重启svn
其中,[users]是必须的。[users] <用户1> = <密码1> <用户2> = <密码2>
3) authz:权限配置文件,用于配置用户访问权限注意:权限配置文件中出现的用户名必须已在用户配置文件中定义;
对权限配置文件的修改立即生效,不必重启svn。
用户组格式:
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。[groups] <用户组名> = <用户1>,<用户2>
版本库目录格式:
[/]:表示根目录及以下。[<版本库>:/项目/目录] @<用户组名> = <权限> <用户名> = <权限>
权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
示例:
[groups] admin = sgj [/] @admin = rw [testsvn1:/] 版本库testsvn1根目录 @admin = rw zs = r [testsvn2:/aaa] 版本库testsvn2中aaa项目 @admin = rw ls = r [testsvn3:/aaa/bbb] 版本库testsvn3中aaa项目的bbb路径 @admin = rw ww = r
3、启动和停止SVN
3.1、启动SVN服务:
说明:启动时必须是3690端口,这是客户端默认的连接端口。如果不使用3690端口的话,会出现套接字无法连接的错误。svnserve -d --listen-port 3690 -r svn根目录 //-d表示以daemon方式(后台)运行 //-r svn根目录 指定根目录
3.2、停止SVN服务:
完ps -aux | grep svn kill -9 进程号
4、SVN服务器转移
4.1、将准备要迁移的仓库导出
4.2、在新的服务器上创建新的仓库svnadmin dump 仓库名 > svn_dump
4.3、导入刚导出的文件svnadmin create SVNROOT
svnadmin load SVNROOT < svn_dump