一、SVN服务器端的安装
1、检查已安装版本
#检查是否安装了低版本的SVN
[root@localhost /]#rpm -qa subversion
#如果存储旧版本,卸载旧版本SVN
[root@localhost modules]#yum removesubversion
2、安装SVN
[root@localhost modules]#yum -y installsubversion
3、验证安装
检验已经安装的SVN版本信息
[root@localhost modules]# svnserve--version
svnserve,版本 1.6.11(r934486)
编译于 Jun 23 2012,00:44:03
版权所有 (C) 2000-2009CollabNet。
Subversion 是开放源代码软件,请参阅http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/)开发的软件。
列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
4、代码库创建
SVN软件安装完成后还需要建立SVN库
[root@localhost modules]#mkdir -p/opt/svn/ #创建SVN根目录
[root@localhost modules]#svnadmin create/opt/svn/repo #创建repo测试库
执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。
5、配置代码库
进入上面生成的文件夹conf下,进行配置
[root@localhost modules]#cd/opt/svn/repo/conf
(1)用户密码passwd配置
[root@localhost password]#cd/opt/svn/repo/conf
[root@admin conf]#vim passwd
修改passwd为以下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
hello = 123
aaa = 123
www = 123
用户名=密码
这样我们就建立了hello、aaa、www等用户,密码均为123密码
(2)权限控制authz配置
[root@admin conf]#vim authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[groups] #组
admin = hello,www #创建一个admin组,将用户加入到组
[/] #根目录权限设置(就是“svn”这个文件夹)
aaa = rw #aaa对svn下的所有版本库有读写权限
[repo:/] #repo:/,表示对repo版本库下的所有资源设置权限
@admin = rw #admin组的用户对repo版本库有读写权限
[repo2:/occi], ,表示对版本库repo2中的occi项目设置权限
[repo2:/occi/aaa], ,表示对版本库2中的occi项目的aaa目录设置权限 权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。
(3)服务svnserve.conf配置
[root@admin conf]#vim svnserve.conf
追加以下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#使授权用户有写权限
auth-access = write
#密码数据库的路径
password-db = passwd
#访问控制文件
authz-db = authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm = /opt/svn/repo
(4)关闭防护墙
[root@admin conf] #service iptables stop //即时生效,重启后失效
[root@admin conf] # chkconfig iptables off //重启后生效
(5)启动SVN
svnserve -d -r /opt/svn/ #指定SVN根目录
(6)查看SVN进程
[root@admin conf] #ps -ef|grep svnserve
(7)检测SVN 端口
[root@localhost conf]#netstat -ln |grep3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
(8)停止重启SVN
[root@localhost password]# kill allsvnserve //停止
[root@localhost password]# svnserve -d -r/opt/svn/repo // 启动
如果已经有svn在运行,可以换一个端口运行
svnserve -d -r /opt/svn/ --listen-port 3391
(9)使用checkout导出文件
[root@localhost tang]# svn checkout svn://127.0.0.1/repo //本机测试
二、SVN客户端的安装
1、检查已安装版本
#检查是否安装了低版本的SVN
[root@localhost /]#rpm -qa subversion
#如果存储旧版本,卸载旧版本SVN
[root@localhost modules]#yum removesubversion
2、安装SVN
[root@localhost modules]#yum installsubversion
3、验证安装
检验已经安装的SVN版本信息
[root@localhost modules]# svnserve--version
svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 2012,00:44:03
版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅http://subversion.tigris.org/ 站点。
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。
下列版本库后端(FS) 模块可用:
* fs_base : 模块只能操作BDB版本库。
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。
Cyrus SASL 认证可用。
4、SVN客户端下载文件
[root@localhost ~]# mkdir /svn
[root@localhost ~]# cd /svn/ #将svn服务上提取的文件放在此目录下
[root@localhost svn]# svn checkout svn://192.168.233.203/repo #svn服务器地址
输入用户名密码:hello/123
注:可以使用带用户名和密码的访问:
svn co --username hello --password123svn://192.168.233.203/repo
5、SVN版本库更新
svn up /svn/repo
上传文件到服务器
[root@localhost ]# touch/svn/repo/test.php #所有的动作必须在repo版本库中完成
[root@localhost ]# svn add /svn/repo/test.php #上传test.php文件到svn服务器
6、删除服务器上的文件
[root@localhost ]# svn rm/svn/repo/test.php--force
7、查看版本库内容
[root@localhost ~]# svn list /svn/repo/
三、命令说明
1、创建版本库:
终端输入:svnadmin create [路径]
该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。
2、将文件导入版本库:
终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]
源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/
例如将当前目录导入版本库myproject:
svn import .file:///home/user/svn/myproject -m"导入文件"
3、从版本库导出:
导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:svn co [版本库路径]
例如将myproject库中的文件导出到当前目录:svn co file:///home/user/svn/myproject .