今天突然想在自己服务器上配置svn,以前一直用的是sftp,用习惯了,不太想去换而已,但是现在git/svn还是挺方便的,省了我很多时间,所以打算在自己服务器上也配置一个。
我们直接开始,首先,检查下自己机器是否有安装过svn:
svnserve --version
如果安装过会显示如下信息
svnserve, version 1.7.14 (r1542130) compiled Aug 23 2017, 20:43:38 Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository back-end (FS) modules are available: * fs_base : Module for working with a Berkeley DB repository. * fs_fs : Module for working with a plain file (FSFS) repository. Cyrus SASL authentication is available.
如果没有安装,执行以下命令进行安装即可:
yum install -y subversion
安装好之后我们开始配置svn的仓库;
首先创建一个用于存放svn相关配置文件的仓库文件夹
mkdir /data/svn
然后通过下面的命令进行创建版本库
svnadmin create /data/svn
这样就创建好了我们用于存放数据的版本库
版本库中有个conf文件夹,这个文件夹里都是svn的配置文件,有三个,分别是:authz、passwd、svnserve.conf
- authz:是权限控制文件
- passwd:是帐号密码文件
- svnserve.conf:是SVN服务综合配置文件
那么每个文件如何配置呢?看下面的代码
#authz 文件配置 #用户组 [groups] #用户组所对应的用户 admin = admin,root,test #库目录权限 [/] #用户组权限 @admin = rw #非用户组权限 *=r
#passwd 文件配置 [users] # harry = harryssecret # sally = sallyssecret admin = 123456 root = 123456 test = 123456
#svnserve.conf 文件配置 [general] # force-username-case = none # 匿名访问的权限 可以是read、write,none,默认为read anon-access = none #使授权用户有写权限 auth-access = write #密码数据库的路径 password-db = passwd #访问控制文件 authz-db = authz #认证命名空间,SVN会在认证提示里显示,并且作为凭证缓存的关键字 realm = /data/svn [sasl]
配置完了之后我们就可以启动svn了,这样就创建了我们自己的svn服务器,启动代码如下:
svnserve -d -r /data/svn
至此我们提交的代码都会存放在我们设定的/data/svn版本库文件夹里面,但是这些数据不是原封不动的存储,而且通过svn自己的方式存储到里面。
那么我们要使用到这个svn仓库,那么我们只需要在本地通过svn命令或者通过图形化工具进行相关操作即可。
拿TortoiseSVN for windows为例:
我们只需要安装好TortoiseSVN后,在相应文件夹右键然后选中 Checkout… 然后弹出一个对话框,我们按下面格式填写
URL of repository:svn://服务器IP地址
Checkout directory:填写你本地的文件夹地址
然后点击OK即可。
如果出现error提示,根据相关代码查找即可。
一般情况下svn默认需要开启3690端口来进行服务,如果你的机器没有开通3690端口,那么你可以在iptables中添加即可,具体如下:
vim /etc/sysconfig/iptables
检查下是否有下面这段代码:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3690 -j ACCEPT
如果没有,在里面添加即可。然后重启即可
service iptables restart
这样我们就能正常的使用svn了。
评论前必须登录