如何使用SVN进行版本控制

SVN的全称是Subversion,也就是版本控制系统。像CVS一样,SVN是一个跨平台软件,支持大多数常见的操作系统。作为一个开源版本控制系统,Subversion管理随时间变化的数据。这些数据放在一个中央存储库中。这个归档很像一个普通的文件服务器,但是它会记住每个文件的变化。这样,您可以将文件还原到旧版本,或者浏览文件的更改历史。Subversion是一个通用系统,可以用来管理任何类型的文件,包括程序源代码。

SubVersion:实现服务系统的软件。

TortoiseSVN:这是一个SVN客户端程序,它将windows shell集成到windows资源管理器和。

文件管理系统的Subversion客户端。

SVNService.exe:是专门为SubVersion开发的入口程序,用作Win32服务钩子。

AnkhSVN:是一个为VisualStudio提供SVN的插件。

Subversion提供了以下主要功能:

目录SVN版本控制

CVS只能跟踪单个文件的历史,但Subversion实际上做了一个“虚拟的”版本控制文件系统,可以跟踪整个目录随时间的变化。目录和文件都可以进行版本控制。

真实版本历史

由于CVS已经限制了文件的版本记录,所以CVS不支持可能发生在文件上的操作,但是会影响目录的内容,比如复制和重命名。况且,在CVS中,你不能用一个同名但没有继承旧版本历史或者完全没有关系的文件来替换一个已经并入系统的文件。在Subversion中,您可以添加、删除、复制和重命名文件或目录。所有新添加的文件都以全新的版本开始。

自动提交

提交操作要么在存档中完全更新,要么根本不更新。这允许开发人员以逻辑间隔创建和提交更改,以防止部分提交成功时出现问题。

SVN版本控制中包含的元数据

每个文件和目录都附有一组属性关键字,并与属性值相关联。您可以根据需要创建和存储任何键/值对。就像文件内容一样,属性会随着时间的推移而版本化。

选择不同的网络层

Subversion有一个文件存储的抽象概念,这使得实现新的网络机制很容易。Subversion可以作为扩展模块嵌入到ApacheHTTP server中。这为Subversion提供了非常先进的稳定性和协同工作能力,此外,它还提供了许多重要的功能:例如,认证、授权、在线压缩和文档库浏览。还有一个轻量级的独立Subversion服务器,它使用自定义的通信协议,可以很容易地通过ssh在隧道模式下使用。

一致数据处理方法

Subversion使用二进制差分算法来表示文件的差异,对文本(人类可以理解)和二进制文件(人类不能理解)一视同仁。两种类型的文件都是以压缩的形式存储在档案中,文件差异在网络上双向传输。

有效的分支和标签。

分支和标签上的消耗不必与项目的大小成比例。Subversion建立分支和标签的方法只是复制项目,使用的方法类似于硬链接。所以这些操作只会花费很少的时间,而且是固定的时间。