linux下svn安装与版本控制
一、svn简介
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。svn作为曾经流行的版本控制控制软件,它优异的版本控制功能在有意无意间已经深入IT人的工作了。然而虽然有后起之秀的git,但现在使用svn的项目并不在少数。下面来看看如何使用安装和使用svn吧。
二、svn卸载与安装
2.1 svn卸载
执行命令 yum remove subversion
2.2 svn安装
2.2.1 svn在线安装
1、执行安装命令:yum -y install subversion
2、查看安装的版本,确认安装成功:svnserve --version
3、查看安装位置:rpm -ql subversion
2.2.2 svn离线安装
1、 下载
官网下载: https://subversion.apache.org/.
注:具体版本根据实际需要
2、参考步骤参考:https://blog.csdn.net/weixin_36484465/article/details/116869866.
(1) 将下载的安装包拷到指定的目录,我这里目录是“/usr/svn",可根据实际情况确定目录
(2) 解压缩安装包:tar zxvf 安装包名称
查看解压情况:
(3)安装步骤参考上述链接内容
三、 创建SVN版本库
3.1 创建库
1、创建指定目录(根据实际需要): mkdir 目录名称
我的目录是:mkdir /opt/svn
2、建立SVN库:svnadmin create /opt/svn/库名称
执行此命令后svn自动在目录下添加必须的配置文件.
注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库。此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
3、进入库,查看库中文件: cd 库名
出现上图中的文件,则说明库创建成功。
subversion - 目录说明:
db目录:就是所有版本控制的数据存放文件。
hooks目录:放置hook脚本文件的目录。
locks目录:用来放置subversion见艰苦锁定数据的目录,用来追踪存取文件库的客户端。
format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。
conf目录:
进入配置文件目录:cd conf/
authz:文件是权限控制文件
passwd:是帐号密码文件
svnserve.conf :SVN服务配置文件
3.2 库权限配置
注:linux文档编辑操作方法 - linux文档编辑:gedit和vi命令详解.
3.2.1 权限控制authz配置
命令:vi authz
1、设置权限:
说明:
r 为可读
w 为可写
rw 为可读可写
*= 代表其他用户无任何权限
(一定要记得 在[/]下面设置每一个用户的权限, 在[groups]下设置用户组的权限, 有的配置文件下没有[/], 设置单个用户权限的时候一定要添加上,如果不添加上,就会一直认证失败)
2、设置用户分组(相当于角色,这里可以不设置)
auth文件示例:
[groups]
math = root,user1,user2
[/]
@math = rw
* = r
3.2.2 用户密码配置:passwd
命令:vi passwd
根据需要配置本库使用的:用户名 = 用户密码 (注意:头部不允许有空格)
passwd文件示例:
[users]
root = 123456
user1= 123456
user2= 123456
3.2.3 服务配置:svnserve.conf
1、删除原有的#,并且前面不要有空格:
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd #密码数据库的路径,这样默认在svnserve.conf同级目录下
authz-db = authz #访问控制文件的路径,这样默认在svnserve.conf同级目录下
说明:anon-access = none 是为了在eclipse中可以通过svn查看资源历史记录
2、去掉下面列出的前面的#,并指定路径:
realm = /opt/svn/版本库名称 # 版本库路径 :认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
3、其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.
注:这是svn配置文件的格式,请按照以上格式书写。
svnserve.conf文件示例:
anon-access = read
auth-access = write
password-db = passwd
authz-db = authz
realm = /opt/svn/mathPhysics/
四、 SVN启动与停止
4.1 启动SVN服务器
指定仓库路径启动,执行命令:svnserve –d –r 仓库路径 [ --listen-port 端口号 ]
查看服务是否开启,执行命令:ps -ef |grep svn
为了增加svn的安全性,这里将svn的默认端口3690改为6534。
命令执行如下:
指令简介: 此指令用于启动svn服务:
-d 指明以守护模式运行,
svn自动在3690端口监听。3690是默认端口,可以使用“–listen-port=”或者“–listen-host=”来指定其它端口。
-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
4.2 停止SVN服务
执行命令:killall svnserve
五、本地配置
上面六步相当于在服务器上的设置,下面来建立一个本地目录(相对与服务器来说)
1、建本地目录:
mkdir -p 目录名称
cd 目录
2、将文件checkout到本地目录
svn checkout svn://IP:端口号/ --username=指定用户名
输入上述命令后,会弹出一个选项卡,让你填一下密码用户名的东西,自己看着填就可以了
经过上述的步骤,svn的配置基本完成了,之后就可以进行svn命令操作了
这里如果第一次认证失败了,你再次认证时svn会用缓存的文件进行认证,此时你需要先删除缓存文件,操作如下:
(1)找到缓存文件位置:`find / -iname “auth”
(2)进入 auth 目录,删除其下的缓存文件
六、linu下svn配置http与https访问
1、安装配置http访问
在实际的项目开发中,大家经常使用的还是http连接的方式。下面我们为svn配置http访问。svn的http访问时依赖apache的dav_svn模块,然后赋予www-data访问权限,进行版本控制。
安装apache,配置http访问详见链接: linux服务器部署svn+apache http访问.
2、安装配置https访问
通过http访问svn版本库虽然方便,但是http协议均采用明文传输,随便在网络上抓包用户名和密码就可能被泄露了,所以考虑采用https传输,安全性比较高,也就是apache+svn+ssl。希望svn支持https,主要的工作是配置 SSL协议(Secure Sockets Layer 安全套接层)
安装ssl,配置https访问详见链接: linux服务器部署svn+apache http + ssl https访问.
七、linux下svn命令操作
参考链接:linux下svn命令使用大全.
八、自启动服务
linux svn设置开机自启动参考链接: linux svn设置开机自启动.
Linux下设置apache httpd服务为自动启动参考链接: Linux下设置apache httpd服务为自动启动.