在软件开发中,使用SVN或者Git等代码管理工具是必须的,作为一个专业的码农,会在Linux上搭建SVN那是肯定的事。所以本节我们来说下如果在Linux下搭建SVN;
1,首先检查是否安装了SVN
[root@wuwei ~]# rpm -qa subversion
卸载svn的命令: yum remove subversion
2,安装SVN,使用yum方式来安装svn
[root@wuwei ~]#yum install subversion
如果安装成功,查看已经安装的svn的版本:
[root@wuwei ~]svnserve --version
3,创建代码库
[root@wuwei ~]# mkdir -p /opt/svn/repo
[root@wuwei ~]# svnadmin create /opt/svn/repo
进入创建的库中,如果创建的库中已经包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立;
4,配置代码库
[root@wuwei ~]# cd /opt/svn/repo/conf
[root@wuwei conf]# vi passwd
注: 以上的语句都必须顶格写,左侧不能留空格,否则会出错;
5,authz权限配置
[root@wuwei conf]# vi + authz
注: r 是读权限的意思;w是写权限的意思;[ / ] 代表根目录下所有的资源;以上语句都必须顶格写,左侧不能留空格,否则会出错;
6,服务 svnserve.conf 配置
[root@wuwei conf]# vi svnserve.conf
将下面几行命令的注释去掉:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repo
7,配置防火墙端口
[root@wuwei conf]# vi /etc/sysconfig/iptables
注:在配置防火墙端口以后,要注意保存的同时还要重启防火墙; ( service iptables restart )
8,测试
启动SVN服务,使用客户端连接:
客户端连接地址: svn:// IP地址
用户名/密码: wuwei/123456
测试创建文件夹等操作。
常规语句:
启动SVN: svnserve -d -r /opt/svn/repo
查看SVN进程: ps -ef|grep svn|grep -v grep
检测SVN端口: netstat -ln |grep 3690
停止SVN: killall svnserve
如果有SVN在运行,可以换一个端口运行: svnserve -d -r /opt/svn/ --listen-port 3391
创建版本库:
终端输入:svnadmin create [路径]
该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmin create myproject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。
将文件导入版本库:
终端输入:svn import [源路径] [目标版本库路径] -m [日志信息]源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/
例如将当前目录导入版本库myproject:
svn import . file:///home/user/svn/myproject -m"导入文件"
从版本库导出:
导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出
终端输入:svn co [版本库路径] [导出目标路径]
例如将myproject库中的文件导出到当前目录:svn cofile:///home/user/svn/myproject
OK,到这,SVN已经搭建完成。大家可以去试一试哦!