一 SVN 简介

1 基础历史

SVN:开放源代码的版本控制系统,subversion在2000年由collabnet inc 开发,其采用了封分支管理系统,设置的目标是取代CVS。

2 基本概念

repository(源代码库):源代码统一存放的地方 checkout(提取):通过SVNhttp进行拉取代码到本地 commit(提交):用于将修改的代码提交到远端仓库 update(更新):用于将远端仓库的新代码更新到本地使用 SVN管理源代码是一行为单位的。

3 SVN 主要功能

1 目录版本控制

CVS 只能跟踪单个文件的历史,不过subversion(SVN)实作了一个“虚拟”的版本控制文件系统,能够以时间跟踪整个目录的变动,目录和文件都能进行版本控制。


2 真是的版本历史

自从CVS限制了文件的版本记录,CVS并不支持那些可能发生在文件上,但会影响所在目录内容的操作,如同复制和重命名。除此之外,在CVS里你不能用拥有同样名字但是没有继承老版本历史或者根本没有关系的文件替换一个已经纳入系统的文件。在Subversion中,你可以增加(add)、删除(delete)、复制(copy)和重命名(rename),无论是文件还是目录。所有的新加的文件都从一个新的、干净的版本开始。


3 自动提交

一个提交操作,不是全部更新到了档案库中,就是完全不更新,这允许开发人员已逻辑区间建立并提交变动,以防止当部分提交成功而出现的问题


4 纳入版本控管的元数据

每一个文件与目录都附有一組属性关键字并和属性值相关联。你可以创建, 并儲存任何你想要的Key/Value对。 属性是随着时间来作版本控管的,就像文件內容一样。


5 选择不同的网络层

Subversion 有抽象的档案库存取概念, 可以让人很容易地实作新的网络机制。 Subversion 可以作为一个扩展模块嵌入到Apache HTTP 服务器中。这个为Subversion提供了非常先进的稳定性和协同工作能力,除此之外还提供了许多重要功能: 举例来说, 有身份认证, 授权, 在线压缩, 以及文件库浏览等等。还有一个轻量级的独立Subversion服务器, 使用的是自定义的通信协议, 可以很容易地通过 ssh 以 tunnel 方式使用。


6 一致的数据处理方式

Subversion 使用二进制差异算法来异表示文件的差异, 它对文字(人类可理解的)与二进制文件(人类无法理解的) 两类的文件都一视同仁。 这两类的文件都同样地以压缩形式储存在档案库中, 而且文件差异是以两个方向在网络上传输的。


7 有效分支与标签 在分支与标签上的消耗并不必一定要与项目大小成正比。 Subversion 建立分支与标签的方法, 就只是复制该项目, 使用的方法就类似于硬连接(hard-link)。 所以这些操作只会花费很小, 而且是固定的时间。


8 Hackability Subversion没有任何的历史包袱; 它主要是一群共用的 C 程序库, 具有定义完善的API。这使得 Subversion 便于维护, 并且可被其它应用程序与程序语言使用。

二 SVN 的安装

1 Linux 服务器端SVN安装

因为Linux默认会有SVN的数据包,因此只需要使用yum方式安装

2 使用命令行创建共享版本库,用于基本测试使用

3 创建密码文件和授权文件

2 安装svnadmin

A 安装httpd服务 2 安装相关SVN插件 3 配置svn+apache 4 授权SVN目录

5 配置根SVN目录

6 安装svnadmin 链接: https://codeload.github.com/changpaozhe/iF.SVNAdmin/zip/master

若在此处安装的php,则需要重启http加载php模块才能访问下面的服务 7 启动http服务器

3 添加相关用户和配置权限

http://本机IP地址/svnadmin 即可进入 配置中文显示: 配置相关文件和配置: 保存配置 默认用户名为admin,密码为admin 添加用户 添加组 添加相关代码仓库 添加访问权限 查看配置权限列表

三 windows 客户端安装与配置

1 客户端下载地址

http://download.skycn.com/hao123-soft-online-bcs/soft/T/2013-11-29_TortoiseSVN-1.8.4.24972-x64-svn-1.8.5.msi

2 安装忽略

3 基本操作

提交修改