CentOS7部署Subversion服务器和TortoiseSVN客户端简记
一、什么是Subversion?
Subversion是一个自由/开源的版本控制系统。
Subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作。从某种程度上来说,允许用户在各自的空间里修改和管理同一组数据可以促进团队协作。因为修改不再是单线进行,开发速度会更快。此外,由于所有的工作都已版本化,也就不必担心由于错误的更改而影响软件质量—如果出现不正确的更改,只要撤销那一次更改操作即可。
二、Subversion有哪些特性?
Subversion支持:
- 版本化的目录
- CVS只能跟踪单个文件的变更历史,但是Subversion实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。在Subversion中,文件和目录都是版本化的。
- 真实的版本历史
- 由于只能跟踪单个文件的变更,CVS无法支持如文件拷贝和改名这些常见的操作—这些操作改变了目录的内容。同样,在CVS中,一个目录下的文件只要名字相同即拥有相同的历史,即使这些同名文件在历史上毫无关系。而在Subversion中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文件之间的历史联系问题。
- 原子提交
- 一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户就可以将相关的更改组成一个逻辑整体,防止出现只有部分修改提交到版本库的情况。
- 版本化的元数据
- 每一个文件和目录都有自己的一组属性—键和它们的值。可以根据需要建立并存储任何键/值对。和文件本身的内容一样,属性也在版本控制之下。
- 可选的网络层
- Subversion在版本库访问的实现上具有较高的抽象程度,利于人们实现新的网络访问机制。Subversion可以作为一个扩展模块嵌入到Apache之中。这种方式在稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术—认证、授权和传输压缩等。此外,Subversion自身也实现了一个轻型的,可独立运行的服务器软件。这个服务器使用了一个自定义协议,可以轻松的用SSH封装。
- 一致的数据操作
- Subversion用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的。这两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。
- 高效的分支和标签操作
- 在Subversion中,分支与标签操作的开销与工程的大小无关。Subversion的分支和标签操作用只是一种类似于硬链接的机制拷贝整个工程。因而这些操作通常只会花费很少且相对固定的时间。
- 可修改性
- Subversion没有历史负担,它以一系列优质的共享C程序库的方式实现,具有定义良好的API。这使得Subversion非常容易维护,和其它语言的互操作性很强。
三、Subversion的架构
图中的一端是保存所有版本数据的Subversion版本库,另一端是Subvesion的客户程序,管理着所有版本数据的本地影射(称为“工作拷贝”),在这两极之间是各种各样的版本库访问(RA)层,某些使用电脑网络通过网络服务器访问版本库,某些则绕过网络服务器直接访问版本库。
四、Subversion的组件
安装好的Subversion由几个部分组成,下面将简单的介绍一下这些组件。
- svn——命令行客户端程序。
- svnversion——此工具用来显示工作拷贝的状态(用术语来说,就是当前项目的修订版本)。
- svnlook——直接查看Subversion版本库的工具。
- svnadmin——建立、调整和修复Subversion版本库的工具。
- svndumpfilter——过滤Subversion版本库转储数据流的工具。
- mod_dav_svn——Apache HTTP服务器的一个插件,使版本库可以通过网络访问。
- svnserve——一个单独运行的服务器程序,可以作为守护进程或由SSH调用。这是另一种使版本库可以通过网络访问的方式。
- svnsync——一个通过网络增量镜像版本库的程序。
五、subversion的安装过程
5.1、环境准备:
1、关闭防火墙并禁止开机自启
#systemctl stop firewalld && systemctl disable firewalld
2、关闭selinux
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
3、为版本库目录专门准备一块盘,本例中为sdb
#parted /dev/sdb
#pcvreate /dev/sdb1
#vgcreate vgsvn /dev/sdb1
#lvcreate -n lvsvn -l pe值 /dev/vgsvn /dev/sdb1
#mkfs.xfs /dev/vgsvn/lvsvn
#mkdir /var/svnrepos
#mount /dev/vgsvn/lvsvn /var/svnrepos
#vi /etc/fstab
5.2、安装subversion
1、#yum -y update ##我这里的服务器可以上互联网,因此先更新下yum源
2、#yum -y install subversion ##使用yum直接安装subversion
3、#rpm -ql | grep -i subversion ##装完查下包的版本
4、创建版本库根目录,由于我在之前已经创建了,这里就不创建了。需要说明的一点就是,使用yum安装的subversion,版本库目录默认需要在/var/下
5、#svnadmin create /var/svnrepos/XXXX ##根据项目创建svn版本库,XXX就是你要创建的版本库名称,这个可以自定义,我这里是zettakit
6、#cd /var/svnrepos/XXXX ##版本库创建成功后cd进去,然后我们对版本库下的文件进行配置
下图是关于相关文件目录的详解:
7、# vim svnserve.conf ##修改对应版本仓库的svnserve.conf配置文件,主要修改的参数如下:
8、#vim auth ##修改对应版本仓库的认证文件,具体参数修改如下图:
9、#vim passwd ##修改对应版本仓库的密码配置文件,具体配置如下图:
10、#svnserve -d -r /var/svnrepos ##修改完上述配置文件后,就可以启动服务了
11、验证端口是否监听,进程是否启动
至此,apache subversion服务端就已经配置完成,接下来就只需要进行客户端安装就行了。我这里客户端选用的是tortoiseSVN
六、安装TortoiseSVN客户端
1、下载TortoiseSVN
下载地址:Downloads · TortoiseSVN
选择对应的版本下载即可,建议顺便把语言包也下载下来,这样后期使用会方便很多。
2、运行TortoiseSVN和language安装程序(一直下一步即可)
3、创建工作目录(我直接放在D盘)
所谓的工作(working)目录其实就是您平常用来存放工作档案的地方。通常我们会等到自己的工作做的一个段落的时候再进行备份。所以我们平常都是在工作 (working)目录下面工作,等到适当时机在 commit(提交到) 到 repository (版本库)中。
举例来说,我们想在 D 盘下面建立一个名为 working的目录。
4、进入工作目录,在空白处右键选择svn检出
5、输入版本库的URL
6、检出完成
至此,TortoiseSVN的安装与基本使用就ok了,至于其他用户可以通过帮助进行学习。
CentOS7部署Subversion服务器和TortoiseSVN客户端简记相关推荐
- CentOS7部署Apache服务器
这篇文章讲解如何在CentOS7上部署自己的Apache服务器. 文章目录 一.Apache服务器简述 二.部署Apache服务器 1.安装Apache 三.修改Apache默认配置(可选) 1.查看 ...
- Centos7部署ntp服务器同步时间以及直接将本地时间同步为北京时间
一.查看配置 查看时区列表: timedatectl list-timezones|grep Asia 查看当前时间: date 查看当前设置: [root@localhost ~]# timedat ...
- centos7安装dhcp服务器并由客户端动态获取IP地址
主机架构: 角色 ip地址 网关 dhcp服务器 192.168.8.81 192.168.8.1 客户机1 动态获取 192.168.8.81 客户机2 192.168.8.99 192.168.8 ...
- SubVersion服务器Windows安装过程
1.环境和软件准备 操作系统: windows 7 Window-Subvsersion : http://subversion.tigris.org/servlets/ProjectDocument ...
- ruby网站部署到服务器,ruby网站部署到服务器
ruby网站部署到服务器 内容精选 换一换 本章节通过示例项目"超级冷笑话网站"介绍如何使用DevCloud开发基于C#语言的Web应用.项目名称:超级冷笑话网站.项目简介:&qu ...
- centos7下svnserve方式部署subversion/SVN服务端(实操)
一般来说,subversion服务器可以用两种方式架设: 一种是基于svnserve,svnserve作为服务端: 一种是基于Apache,用apache作为服务端. 这里采用第一种方式部署. 执行如 ...
- Flask项目部署云服务器 CentOS7.3+Redis+MySQL+Flask+Nginx+Gunicorn +Supervisorctl
Flask项目部署云服务器 CentOS7.3+Redis+MySQL+Flask+Nginx+Gunicorn +Supervisorctl 项目运行环境 阿里云(单核CPU, 2G内存, Cent ...
- centos7 部署glusterfs集群,服务端和客户端演示
centos7 部署glusterfs集群,服务端和客户端演示 说明 glusterfs 分布式文件服务,详细可以百度 官网文档: https://docs.gluster.org/en/latest ...
- GIT-Linux(CentOS7)系统部署git服务器
GIT-Linux(CentOS7)系统部署git服务器 root账号登录 一. 安装并配置必要的依赖关系 在CentOS系统上安装所需的依赖:ssh,防火墙,postfix(用于邮件通知) ,wge ...
最新文章
- Java中比较两个Double类型数据的大小
- OPPO智能眼镜发布,撕掉手机标签,CEO陈明永罕见亮相砸500亿投研发
- linux如何运行用户程序,Linux系统下,如何以其他用户身份运行程序
- android获取ro._修改Android序列号(Serial Number)
- 【华为云技术分享】HDC.Cloud | 为防止交通事故,95后学生运用“黑科技”这样做!
- 2021年财富世界500强,苹果是全球最赚钱公司,小米第338位,第一是它
- Java经纬度坐标与高斯坐标的转换
- window mysql 同步复制_Window环境下配置MySQL 5.6的主从复制、备份恢复
- react antd 更改table 表头和表行样式
- 【好文随记】牛人大学的感悟
- python打开360浏览器_使用python3.7 的pycharm selenium自动化测试中启动360浏览器、360极速浏览器的方法...
- 玩转 ESP32 + Arduino (十九) SIM800L上传数据到OneNet(新版Mqtts)
- 双硬盘SSD+HDD+ win10装双系统Ubuntu16.04
- qq邮箱smtp服务器imap,如何配置电子邮件客户端使用IMAP(QQ邮箱账户) 你需要学习了...
- vue table页合并相同数据单元格
- 一文掌握Tableau制作透视表/数据表
- Aspose.Cells企业案例:Setec 为物联网传感器和能源节约和消耗生成自动内部报告
- Xamarin for android学习总结一
- 微型计算机曾经使用过的字长,自考《计算机应用基础》模拟试题七
- (转)Native Extensions for Silverlight (NESL)?
热门文章
- VS 2010 中文版正式版无法安装Silverlight4 Tools的解决办法
- 中登公司统计数据好像有问题,看不懂。
- iframe展示html源代码,HTML DOM IFrame用法及代码示例
- 网页子窗口iframe的用法
- lenovo 邵阳E42-80 Ubuntu14.04.5 wireless 驱动安装
- Java更改 PDF 页面大小
- Ubuntu LiveSuit V3.06不能烧写问题
- 【论文简述】Multiview Stereo with Cascaded Epipolar RAFT(ECCV 2022)
- DNS域名 网址后缀的含义
- 返老还童!给老年鼠注入年轻鼠脑脊液可提升记忆力,斯坦福大学抗老研究登Nature...