svn--1.概述

来源:互联网 发布:淘宝买岛国资源搜什么 编辑:程序博客网 时间:2024/05/21 12:48

1      版本控制

1.1  什么版本控制

       版本控制(Revision Control):是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。也是一种软体工程技巧,籍以在开发的过程中,确保由不同人所编辑的同一档案都得到更新。

 

1.2  版本控制软件

       CVS(Concurrent Versions System)代表协作版本系统或者并发版本系统,是一种版本控制系统,方便软件的开发和使用者协同工作。

       VSS( VisualSource Safe )只能在windows下,作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责项目文件的管理

       Git是用于Linux内核开发的版本控制工具。它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linuxkernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。

www.github.org

。。。。。。

       SVNSubversion ),是一个开放源代码的版本控制系统,采用了分支管理系统,它的设计目标就是取代CVS。

 

2      svn

2.1  SVN特点

       统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。

       原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。

       重命名、复制、删除文件等动作都保存在版本历史记录当中。

       对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)

       目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。

       分支的开销非常小。

       优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。

       支持元数据(Metadata)管理。每个目录或文件都可以定义属性(Property),它是一些隐藏的键值对,用户可以自定义属性内容,而且属性和文件内容一样在版本控制范围内。

支持FSFS和Berkeley DB两种资料库格式。

       不足:只能设置目录的访问权限,无法设置单个文件的访问权限。

 

 

 

2.2  体系结构

简化后:

 

原创粉丝点击