svn(subversion)版本控制系统学习与理解

简介:

 定义:Apache Subversion(简称SVN,svn),一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。
从这段话,我们可以得到四点信息:一、svn是开源的;二、是用来做版本控制的;三、前身是cvs;四、相较于cvs,它有一个显著特性——采用了分支管理系统。svn还有下面几条具体的特性。

1. 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
2. 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
3. 重命名、复制、删除文件等动作都保存在版本历史记录当中。
4. 对于二进制文件,使用了节省空间的保存方法(简单的理解,就是只保存和上一版本不同之处)。
5. 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
6. 分支的开销非常小。
7. 优化过的数据库访问,使得一些操作不必访问数据库就可以做到。这样减少了很多不必要的和数据库主机之间的网络流量。
8. 支持元数据(Metadata)管理。每个目录或文件都可以定义属性(Property),它是一些隐藏的键值对,用户可以自定义属性内容,而且属性和文件内容一样在版本控制范围内。
9. 支持FSFS和Berkeley DB两种资料库格式。
reference:http://zh.wikipedia.org/wiki/Subversion

注意第九条“支持FSFS和Berkeley DB两种资料库格式”。以Berkeley DB为例,访问数据库的程序自主决定数据如何储存在记录里,Berkeley DB不对记录里的数据进行任何包装。记录和它的键都可以达到4G字节的长度。所以,

1. 这是一种键-值对数据库。
2. 其次,Berkeley DB不支持SQL或者其他的数据库查询语言,不支持表结构和数据列。
3. 但是作为一种数据库,尽管架构很简单,Berkeley DB却支持很多高级的数据库特性,比如ACID 数据库事务处理,细粒度锁,XA接口,热备份以及同步复制。
reference:http://zh.wikipedia.org/wiki/Berkeley_DB

本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/3604446.html,如需转载请自行联系原作者
相关文章
|
4月前
|
Ubuntu 安全 网络安全
百度搜索:蓝易云【Ubuntu系统SVN服务器搭建教程】
现在,你已经成功在Ubuntu系统上搭建了SVN服务器。其他用户可以通过SVN客户端连接到你的SVN服务器,进行代码版本管理和协作开发。注意,为了安全起见,建议配置SSL加密以保护数据传输。
39 1
|
8月前
|
IDE Linux 开发工具
从旧服务器迁移svn到另一台新服务器中(linux系统)|遇到诸多坑,已解决
从旧服务器迁移svn到另一台新服务器中(linux系统)|遇到诸多坑,已解决
|
5月前
|
iOS开发 MacOS
MAC OS更新系统后IDEA中的SVN报错无法使用
MAC OS更新系统后IDEA中的SVN报错无法使用
|
4月前
idea右击项目却不显示svn提交按钮菜单Subversion选项,无法提交代码
idea右击项目却不显示svn提交按钮菜单Subversion选项,无法提交代码
142 0
idea右击项目却不显示svn提交按钮菜单Subversion选项,无法提交代码
|
7月前
|
存储 开发工具 数据安全/隐私保护
全网最新详细学习SVN常用功能
全网最新详细学习SVN常用功能
75 0
|
12月前
|
iOS开发 MacOS
MAC OS更新系统后IDEA中的SVN报错无法使用
IntelliJ IDEA无法正常使用SVN 报Cannot run program “svn” (in directory “/XXXX/XXXX/XXXX/XXX”): error=2错误! 解决方法来了!
1038 0
svn\pristine\0a\0a66a6f1e12c54c3a0c3885a2bf5042977071358.svn-base系统找不到指定路径
svn\pristine\0a\0a66a6f1e12c54c3a0c3885a2bf5042977071358.svn-base系统找不到指定路径
177 0
svn\pristine\0a\0a66a6f1e12c54c3a0c3885a2bf5042977071358.svn-base系统找不到指定路径
|
开发工具 git
【学习笔记】【SVN】【CVS】【Git】集中式版本控制系统 与 分布式版本控制系统的理解与认识
【学习笔记】【SVN】【CVS】【Git】集中式版本控制系统 与 分布式版本控制系统的理解与认识
291 0
|
Unix iOS开发
UNIX简单的中SVN基本命令行学习
UNIX简单的中SVN基本命令行学习
136 0
UNIX简单的中SVN基本命令行学习
|
网络安全 数据安全/隐私保护 Windows
基于阿里云搭建svn代码管理系统
使用阿里云服务器搭建svn代码管理系统并集成便于小组开发
基于阿里云搭建svn代码管理系统