【SVN】SVN之管窥蠡测

小编现在学习到了新知识,那就是SVN,对于SVN先来介绍一下它。

来源:

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

    Subversion是一个自由开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里,这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本,并可以查看数据的更改细节。人们通常把它们称作“时间机器”。

运行方式:

    独立服务器、借助Apache运行

数据存储:

    BDB(一种事务安全型表类型)、FSFS)(一种不需要数据库的存储系统);

    BDB方式在服务器中断时,有可能锁住数据,所以FSFS方式相对更安全一点。

工作流程:集中式管理

    集中式管理的工作流程如下图:

    集中式代码管理的核心是服务器,所有开发者在开始新一天的工作之前必须从服务器获取代码,然后开发,最后解决冲突,提交。所有的版本信息都放在服务器上。如果脱离了服务器,开发者基本上可以说是无法工作的。下面举例说明:

开始新一天的工作:

1、从服务器下载项目组最新代码。

2、进入自己的分支,进行工作,每隔一个小时向服务器自己的分支提交一次代码(很多人都有这个习惯。因为有时候自己对代码改来改去,最后又想还原到前一个小时的版本,或者看看前一个小时自己修改了哪些代码,就需要这样做了)。

3、下班时间快到了,把自己的分支合并到服务器主分支上,一天的工作完成,并反映给服务器。

这就是经典的svn工作流程,从流程上看,有不少缺点,但也有优点。

上述中提到了集中式管理,那么它又是什么呢?来简单介绍一下。

    集中式管理是借助现代网络通信技术,通过集中式管理系统建立企业决策完善的数据体系和信息共享机制,集中式管理系统集中安装在一台服务器上,每个系统的用户通过广域网来登陆使用系统。

    简单来说就是共同操作同一套系统,使用和共享同一套数据库,通过严密的权限管理和安全机制来同样实现符合有组织架构的数据管理权限。

接下来回归正题。

功能:

·包含绝大部分CVS的功能

CVS是最基本的版本控制系统。Subversion包含了CVS的大部分功能,并且针对有些功能还稍加改进。

·目录的版本化

Subversion将目录名以版本号的形式体现。

·基于版本的复制,删除和重命名

无论复制、删除还是重命名,都会被打上版本号,尽管这听上去有些奇怪。

·自由的版本化元数据操作

    Subversion允许任何元数据附加在文件或目录中。这些属性是键/值对,并且被版本化。Subversion也提供对修订版附加任何键/值属性的方法,这些属性不会被版本化,因为他们会自动将元数据附加到版本空间中,但他们可以随时被更改。

·混合追踪

Subversion 1.5开始加入了混合追踪功能。

·文件锁

支持文件锁定,当多个用户试图编辑同一个文件时会收到警告。

·Apache网络服务的支持,基于WebDAV/DeltaV协议

使用基于HTTP的WebDAV/DeltaV协议进行网络通信,而Apache网络服务器提供网络存储的站点服务。

·可执行的标签

    当一个文件是可执行的时候,Subversion会提示,并且当这个可执行的文件被放在版本控制中时,Subversion会防止该程序检查其他目录。

独立进程模式

Subversion可以运行在独立模式下

·一个只读的存储镜像

Subversion提供一个工具,SVNsync, 用于同步主服务器上的 文件到一个子存储服务器上,并且标为只读的属性

总结:

    SVN简单来说是一种版本控制的系统,但是再一写系统开发的过程中,它的使用还是必不可少的,所以需要简单的了解,明白是什么,为什么;SVN还有一些优缺点,不过这些需要对比着来学习,接下来就是和CSS的比较学习了。


猜你喜欢

转载自blog.csdn.net/jing875480512/article/details/80219450
svn
今日推荐