开发人员经常会上传代码,或者改对代码做一些更改。svn就是用来将修改后的代码更新到服务器上的。下面就来看一下怎么在Linux环境下搭建svn服务(subversion)。
步骤:
1、检查是否已经有svn
2、安装subversion
3、检查是否安装成功
4、创建svn资源仓库
5、新增用户及密码,配置权限,配置资源库权限
6、启动或者重启服务
7、测试、从机安装subversion
一、检查是否已经有svn
如果没有安装就会是下面的样子,提示找不到命令。
1、[root@localhost ~]# svnserve --version
2、-bash: svnserve: command not found
如果已经安装,会显示版本信息:
[root@localhost ~]# svnserve --version
二、安装
在Linux下安装的是subversion,直接用yum 安装即可。
[root@localhost~]# yum install -y subversion
三、检查安装是否成功
同样用的是 svnserve –version成功安装会显示版本信息
[root@localhost~]# svnserve --version
四、创建svn资源仓库
配置文件就是在这一步生成。
cd /usr/local/ //进入目录,准备创建svn目录
mkdir svnRepo //创建一个svn目录
chmod -R 777 svnRepo //修改目录权限为777
svnadmin create /usr/local/svnRepo/test //创建一个svn版本仓库test(test可以随便起名字)
cd test/conf //进入test版本仓库下的配置文件目录
authz passwd svnserve.conf
五、新增用户及密码,配置权限
已经看到在仓库下面生成了三个文件
authz #权限配置文件
passwd #用户名密码文件
svnserve.conf #资源库配置文件
(1) svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径
anon-access = none //默认是只读read
readauth-access = write //认证后有写入权限
password-db = passwd //帐号密码配置文件
authz-db = authz //权限配置文件
realm = first //改成自己的版本库 生效范围
(2) authz //文件,创建svn组和组用户的权限
[group]
first = ddl,shl,yunwei //创建一个first的组,并制定两个用户ddl和shl
[test:/] // //指定版本库跟目录下的权限
@first= rw //first组用户权限为读写
* = r //其他用户只有读权限
(3) passwd //创建或修改用户密码
[users]
ddl =123456 //用户名 = 密码
shl =123456 //用户名 = 密码
yunwei=123456
例子:
(4)然后设置自启动
cd/etc/rc.d/
vi rc.local
添加下面这行
//--listen-port 3690 是指定端口启动,默认是3690,--log-file 是SVN日志文件 ,当然两个参数都可以不指定
svnserve -d -r /usr/local/svnRepo --listen-port 3699 --log-file=/var/log/svnserver.log
(5)SVN命令
lsof -i :3690 查看svn是否启动
ps aux |grep 'svn' 查找所有svn启动的进程
kill-9 2505 杀死2505这个查找到的svn进程
svnserve -d -r /usr/local/svnRepo/first 启动svn(可以把这个放到/etc/local/rc.local文件中,实现开机自启动)
netstat -anp|grep svnserve查看一下SVN信息
SVN版本库起动方式,现在svnRepo下面有 test、test2 两个版本库
1:单版本库起动 svnserve -d -r /usr/local/svnRepo/test
2:多版本库起动 svnserve -d -r /usr/local/svnRepo
区别在于起动svn时候的命令中的启动参数-r指定的目录。
六、启动或者重启服务
[root@localhost conf]# /etc/init.d/svnserve start
Startingsvnserve: [OK]
如果要指定目录要加参数:
[root@localhost svndir]# mkdir /svndir/svn
[root@localhost svndir]# svnserve -d -r /svndir/svn ####(只是看一下可以指定目录,这个实验不需要)
svnserve:Can't bind server socket: Address already in use
七、测试,从机安装subversion
linu环境访问:
在次从机安装也安装一个subversion 用来测试。
注:
服务主机:192.168.1.99
从机:192.168.1.26
在从机上checkout 根目录
[root@localhost ~]# svn checkout svn://192.168.1.99:3699/test/
需要注意的这里check的目录跟服务主机里面定义的[test要一样。
window客户端访问:
假设客户端使用tortoiseSVN
打开资源库浏览器输入地址, svn://你的svn服务器ip:3690/你的项目名
输入用户名uername 密码123456
因为没有网资源库里放文件所以需要你用客户端右键【create forder】,然后【add forder】
Linux环境下常用命令
1、查询是否安装SVN
rpm -qa subversion //查看svn的安装包
2、检查SVN安装信息
svnserve --version
3、得到svn安装包的信息
rmp -qi subversion
4、卸载旧版本svn
yum remove subversion
5、安装SVN
yum install -y subversion
6、svnserve --help
7、通过进程检测
ps -ef|grep svn
8、通过端口3690检测
netstat -lntup|grep 3690
9、通过文件检测,需要root用户才可以执行
lsof -i:3690
10、查看安装位置
rpm -ql subversion