subversion是一款可以帮助您控制软件版本的程序,当你在开发一款软件的时候,就需要设置一些自动更新的操作项目,想要使用软件的更新功能,在开发的阶段就需要进行版本控制设计,通过与SVN、CVS程序的结合使用,可以方便您在独立的客户端上设计一个自由的控制系统,对于开发人员设计软件的升级系统以及版本数据是非常有用的;subversion现在已经更新到1.9版本,其功能也得到了多方面的优化设计,可以让软件自动跟踪官方的新版本,从而起到随时升级的操作。

软件功能
Subversion是同样有效的二进制文本文件,因为它是用二进制diffing算法来传输和存储连续修订。
Subversion从一开始就被设计成客户机/服务器,从而避免了一些困扰CVS的维护问题。代码的结构是一组具有明确定义的接口的模块,它们被其他应用程序调用。
Subversion命令行客户端(SVN)提供各种方式解决冲突的更改,包括交互式解决方法提示。这种机制也通过API提供,这样其他客户机(如图形客户机)就可以提供适合于其接口的交互式冲突解决方案。
Subversion提供了一个独立服务器选项使用一个自定义的协议,独立的服务器可以运行inetd服务或守护进程模式,并提供认证和授权功能相同的水平,基于服务器的服务器。独立的服务器也可以使用SSH通道。
Subversion引入合并跟踪:自动协助管理开发线之间的变化流,以及将分支合并回源中。合并跟踪的1.5个版本对常见场景有基本的支持;我们将在即将发布的版本中扩展该功能。
软件特色
1.subversion将目录名以版本号的形式体现
2.支持文件锁定,当多个用户试图编辑同一个文件时会收到警告
3.无论复制,删除还是重命名,都会被打上版本号,尽管这 听上去有些奇怪
4.使用基于HTTP的WebDAV/DeltaV协议进行网络通信,而apache网络服务器提供网络存储的站点服务
5.subversion提供一个工具,svnsync, 用于同步主服务器上的 文件到一个子存储服务器上,并且标为只读的属性
6.当一个文件是可执行的时候subversion会提示,并且当这个可执行的文件被放在版本控制中时,subversion会防止该程序检查其他目录
7.subversion允许任何元数据附加在文件或目录中 。这些属性是 键/值对,并且被版本化。subversion也提供对修订版附加任何键/值属性的方法,这些属性不会被版本化因为他们会自动将元数据附加到版本空间中,但他们可以随时被更改
使用方法
在开发subversion过程中,偶尔会发生更改的存储库数据库模式。老库,使用1.0以前的Subversion开发版本创建的,在升级时需要如下操作。如果在版本x和y之间发生模式更改,那么升级到y的存储库管理员必须执行以下操作:

审计svnversio库作为一个整体,所以它不能扩大任何关键字的两个数,它将有两个possibly搜索和修改的文件在你的每一份工作都在线更新和承诺。
你想要的信息的回顾你的工作拷贝)是可用的“命令svnversion;它给你的信息在审计工作水平的一个拷贝(一给定的路径(见svnversion——服务细节)。

查看项目的所有标记
假设你已经创建的标签复制以下的一贯政策,那么这只不过是在一个目录包含您的标签运行svn LS。通常,您可以在存储库中的标签目录中运行它,当然您可以自由地以更复杂的方式组织这个目录,或者完全地创建一个不同的约定。

在两个标记之间查看日志
这在CVS中是一种常见的做法,并且是可以实现的,但需要更多的工作。假设您已经在不同的时间点制作了两个标记/主干,这里的最终目标是运行

x和y是两个标记被复制的修改。要发现x和y,可以使用前面一节描述的相同技术(“查找分支的开始”)。标签目录上没有提交,因此下面的命令应该各自生成一个日志条目:

修正不正确的标签
如果你的标签有点偏离,你可以像在CVS中经常做的那样“调整”它。只需检查标记目录的工作副本,进行任何更改,并提交。
记住,因为分支和标签是目录,当它们对您的项目不再有用时,它们也可以被删除。它们将继续存在于存储库的历史中。

为文件库添加或删除一个文件或目录。该库将在用户运行svn commit改变。预定的操作表现为A或D的SVN状态,和SVN还原未做调度。目录真的可以被删除(尽管和所有删除的条目一样,仍然存在于历史中)。

更新日志
2012-12-20 - Apache Subversion 1.7.8发布
我们很高兴地宣布Apache Subversion 1.7.8释放。这是迄今为止最完整的颠覆发行版,我们鼓励颠覆用户尽快升级
Apache Subversion是以女性为2013的推广计划的一部分,以增加在自由和开放源码软件的发展
Subversion使用SHA-1在如何处理内容进行散列碰撞所确定的谷歌。一个颠覆的关键假设处理的内容是SHA-1是独特的所有对象。
颠覆有两个主要的脆弱性领域。
FS后端(库)使用SHA-1。
工作副本/ RA层使用SHA-1。
FS层使用SHA-1在识别对象存储库中。为了防止不同的内容与同SHA-1被存储,升级到1.9.6(其中,默认情况下,防止碰撞数据存储)
∨ 展开