svn是什么工具
SVN(Subversion),是一个开放源代码的版本控制系统,也就是说 Subversion 管理着随时间改变的数据,是在多个人员、设备之间,同步不同版本的文档和源代码的工具。简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
一、svn是什么工具
SVN的全称是Subversion,即版本控制系统。它是最流行的一个开放源代码的版本控制系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(Repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括程序源码。
SVN采用客户端/服务器体系,项目的各种版本都存储在服务器上,程序开发人员首先将从服务器上获得一份项目的最新版本,并将其复制到本机,然后在此基础上,每个开发人员可以在自己的客户端进行独立的开发工作,并且可以随时将新代码提交给服务器。当然也可以通过更新操作获取服务器上的最新代码,从而保持与其他开发者所使用版本的一致性。
SVN的客户端有两类:一类是基于Web的WebSVN等,另一类是以Tortoise SVN为代表的客户端软件。前者需要Web服务器的支持,后者需要用户在本地安装客户端,两种都有免费的开源软件供使用。SVN存储版本数据也两种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
二、svn的工作机制
SVN系统具体是如何实现对项目软件的版本控制,一方面通过实现历史操作记录查阅。在任意一台服务器中都可以添加一个SVN版本库,而相应的版本库中存放大量的程序和文档,而这些项目资源主要通过配置管理员依据不同的配置管理计划对不同项目的组员分配与之相符合的访问权限,进而实现对资源的统一管理;只有SVN标本过版本库中的资源,项目组成员可以对版本资源库中的资源进行访问。
一次简单的访问过程包括:相关项目组员首先在客户操作端建立一个从版本库检索出来的项目文件,而后就可以对拷贝的档案进行修改,最后通过SVN提交命令将其修改后的项目文件提交到终端服务器,终端服务器最终会对修改后的项目文件做最后的综合更新记录。
它最初是作为界面命令行创建的。这意味着您将打开终端并键入文本命令。
Subversion (SVN) 设置操作所需的关键方面如下:
- 具有每个源文件的每个版本的服务器
- 将桌面上的副本另存为文件的本地副本
工作文件称为计算机上文件的本地副本。每个用户都可以使用这些文件进行更改。接下来,用户将其修改专用于 subversion 服务器,该服务器也称为存储库。每次用户进行更改时,subversion 都会在新变体中处理并注册更改。如几乎每一个VCS,用户通常使用最新版本进行操作。虽然,需要较旧的变体,因为您可以返回到以前的版本。
三、svn的基本功能
以下是SVN的基本功能:
- 版本控制是为也包含单个文件的文件夹进行的。
- 复制、删除、添加和重命名文件和文件夹是规范的。
- 文件和文件夹属性会随着时间的推移而注册,从而构建全面的历史记录。
- 开发人员可以将修改设计为微小的自控单元并进行修改。
- 执行当前网络功能非常简单。
- 二进制文件和文本文件以兼容的方式保存和管理。
- 有效且及时地构建分支和标记。
- SVC很容易利用不同的编程和软件语言。
四、svn的优势
1.存储
SVN服务器既具有CVS所具有数据储存的优点,像是信息资源存储后会形成资源树结构,便于存储的同时,数据一般不会丢失,同时又拥有自己的特色。SVN是通过关系数据库及二进制的存储方式,同时解决了既往不能同时读写同一文件等问题,同时增添了自己特有的“零或一”原则。
2.速度
与人们初始的CVS相比,SVN在速度运行方面有很大提升。因为SVN服务器只支持少量的信息、资源传输,与其他系统相比,更支持的是离线模式,因此避免了网络拥挤现象的出现。
3.安全性
SVN是一种技术性更加安全的产品,实现了系统和控制两方面的结合。一方面可以将系统整体的安全功能有效地分布在分支系统中,进而保证分支系统能正常运行,从而使各分支系统能够互补,最终在系统整体性的安全性得以保障,通过均衡原则实现最终追求安全的目的。
拓展阅读
SVN优于 CVS 之处
- 原子提交:一次提交不管是单个还是多个文件,都是作为一个整体提交的,所以要么全部提交成功,要么就是全部不成功,这样就不会引起数据库的不完整和数据损坏。
- 重命名、复制、删除文件等动作都保存在版本历史记录当中。
- 对于二进制文件,使用了节省空间的保存方法。(简单的理解,就是只保存和上一版本不同之处)
- 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
- 分支的开销非常小。
- 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。