SVN知识整理[iOS]

来源:互联网 发布:西瓜影音mac版 编辑:程序博客网 时间:2024/05/24 00:52

中文名
SVN
外文名
Subversion
本    质
版本管理工具
来    源
是cvs的重写版和改进版
地    位
多数开源软件使用svn作为代码库
运行方式
独立服务器、基于Apache




SVN是Subversion的简称,是一个开放源代码的版本控制系统,主要用于App的版本维护和更新

相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

SVN服务器的两种运行方式:1⃣️独立式服务器;2⃣️借助apache运行。

SVN存储版本数据的两种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

工作流程:

集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:
开始新一天的工作:
1、从服务器下载项目组最新代码。
2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。
3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。
这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。

缺点

1、服务器压力太大,数据库容量暴增。
2、如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
3、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。

优点

1、管理方便,逻辑明确,符合一般人思维习惯。
2、易于管理,集中式服务器更能保证安全性。
3、代码一致性非常高。
4、适合开发人数不多的项目开发。
5、大部分软件配置管理的大学教材都是使用svn和vss。
安全性:

SVN站在更高层次上对安全产品,从系统和控制的角度进行了"有机"和"无隙"的整合。
SVN是一个安全虚拟网络系统,它将系统整体的信息安全功能均衡合理地分布在不同的子系统中,使各子系统的功能得到最大限度的发挥,子系统之间互相补充,系统整体性能大于各子系统功能之和,用均衡互补的原则解决了"木桶原理"的问题。
SVN能在跨接Internet,Intranet,Extranet间的网络所有端点实现全面的安全,而且还能提供基于企业策略的信息管理机制以充分有效地利用有限的带宽。SVN可以满足各种企业VPN的要求,通过为公司内部网络、远程和移动用户、分支机构和合作伙伴提供基于Internet的安全连接。所以,我们可以将SVN看成是VPN、防火墙、基于企业策略的信息管理软件集成在一起的Internet安全的综合解决方案。在这样一个网络系统中,所有互联网服务器端和客户端都是安全的,并有一个信息管理机制以不断地通过这个外部网络环境动态地分析及满足客户的特定带宽需求。SVN提供了基于网络实现的eBusiness 应用的安全服务,它包含:
对多种应用进行全面的安全认证;
支持多种认证及PKI;
功能强大并对用户透明的通讯加密;
面向用户的集中安全策略管理;
统一跨接Internet、Intranet、Extranet的通讯。

0 0
原创粉丝点击