subversion里可以记录帮助用户记录每一个文件和目录的修改情况,甚至还能查看数据的一些更高的细节。subversion其实是一款专门打造的开源的版本控制软件,只要是为广大的用户提供十分便捷的功能服务,让用户可以更加的了解自己的电脑文件,让你管理程序版本更加轻松。软件还很是适合团队间的合作,因为他能通过网络访问,让用户可以在不同的电脑上进行操作,很是便捷。
subversion操作:
1、SVN
命令行客户端程序。
2、SVNversion
此工具用来显示工作拷贝的状态(用术语来说,就是当前项目的修订版本)。
3、SVNlook
直接查看版本库的工具。
4、SVNadmin
建立、调整和修复版本库的工具。
5、SVNdumpfilter
过滤版本库转储数据流的工具。
6、mod_dav_SVN
ApacheHTTP服务器的一个插件,使版本库可以通过网络访问。
7、SVNserve
一个单独运行的服务器程序,可以作为守护进程或由SSH调用,这是另一种使版本库,可以通过网络访问的方式。
8、SVNsync
一个通过网络增加镜像版本库的程序。
subversion优势:
包含绝大部分CVS的功能
CVS是最基本的版本控制系统。Subversion包含了CVS的大部分功能,并且针对有些功能还稍加改进。
·目录的版本化
Subversion将目录名以版本号的形式体现。
·基于版本的复制,删除和重命名
无论复制、删除还是重命名,都会被打上版本号,尽管这听上去有些奇怪。
·自由的版本化元数据操作
Subversion允许任何元数据附加在文件或目录中。这些属性是键/值对,并且被版本化。Subversion也提供对修订版附加任何键/值属性的方法,这些属性不会被版本化,因为他们会自动将元数据附加到版本空间中,但他们可以随时被更改。
·混合追踪
Subversion 1.5开始加入了混合追踪功能。
·文件锁
支持文件锁定,当多个用户试图编辑同一个文件时会收到警告。
·Apache网络服务的支持,基于WebDAV/DeltaV协议
使用基于HTTP的WebDAV/DeltaV协议进行网络通信,而Apache网络服务器提供网络存储的站点服务。
·可执行的标签
当一个文件是可执行的时候,Subversion会提示,并且当这个可执行的文件被放在版本控制中时,Subversion会防止该程序检查其他目录。
·独立进程模式
Subversion可以运行在独立模式下
·一个只读的存储镜像
Subversion提供一个工具,SVNsync, 用于同步主服务器上的 文件到一个子存储服务器上,并且标为只读的属性
subversion说明:
1 存储类型格式
CVS是个基于RCS文件的版本控制系统。每个CVS文件都不过是普通的文件,加上一些额外信息。这些文件会简单的重复本地文件的树结构。因此,不必担心有什么数据损失,如果必要的话可以手工修改RCS文件。
svn是基于关系数据库的(BerkleyDB)或一系列二进制文件的(FS_FS)。一方面这解决了许多问题 (例如,并行读写共享文件)以及添加了许多新功能(例如运行时的事务特性。)。然而另一方面,数据存储由此变得不透明。
2 速度
CVS比较慢。
整体而言,由于架构实现的不同, SVN的确比CVS快很多。在网络上它只传输很少的信息并支持更多的离线模式的功能。但这也是有代价的。速度的代价就是巨大的存储(完全备份所有的工作文件)。
3 标志&分支
SVN采用标志和分支而抛弃了其他三件东西,实际上这意味着他们把这个概念替换为在档案库内部复制文件或目录以便保存日志。这样一来,无论标志创建还是分支创建都只是仓库内部的文件复制了。对分支而言:分支不过是在仓库内部的一个单独的目录而已了,不像早期还有些什么交错。对标志而言:已经不能对代码加标志了。在某种程度上说,SVN全文件编号补足了这个缺陷,SVN里整个仓库都有版本号,但不是针对单个文件。
4 元数据
CVS只允许存储文件。
SVN允许一个文件有任意多的可命名属性,功能十分完全。
5、文件类型
CVS最初是为文本文件存储而设计的。因此其他文件类型(二进制,统一码)文件的支持几乎没有,如需要的话则要有其他信息,并且客户端服务器端都要调整
subversion评价:
1、版本化的目录
CVS只能跟踪单个文件的变更历史,但是实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。在Subversion中,文件和目录都是版本化的。
2、真实的版本历史
由于只能跟踪单个文件的变更,CVS无法支持如文件拷贝和改名这些常见的操作——这些操作改变了目录的内容。同样,在CVS中,一个目录下的文件只要名字相同即拥有相同的历史,即使这些同名文件在历史上毫无关系。而在Subversion中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文件之间的历史联系问题。
3、原子提交
一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户就可以将相关的更改组成一个逻辑整体,防止出现只有部分修改提交到版本库的情况。
4、版本化的元数据
每一个文件和目录都有自己的一组属性——键和值,可以根据需要建立并存储任何键/值对。与文件本身的内容一样,属性也在版本控制之下。
5、可选的网络层
在版本库访问的实现上具有较高的抽象程度,利于人们实现新的网络访问机制。可以作为一个扩展模块嵌入到Apache之中,这种方式在稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术——认证、授权和传输压缩等。此外,自身也实现了一个轻型的、可独立运行的服务器软件,这个服务器使用了一个自定义协议,可以轻松地使用SSH封装。
6、一致的数据操作
用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的,两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。
7、高效的分支和标签操作
分支与标签操作的开销与工程的大小无关。Subversion的分支和标签操作只是一种类似于硬链接的机制拷贝整个工程,因而这些操作通常只会花费很少且相对固定的时间。
8、可修改性
没有历史负担,它以一系列优质的共享C程序库的方式实现,具有定义良好的API,这使得非常容易维护,和其它语言的互操作性很强。
125.76MB
13.63GB
22.3G
33.41MB
43.58MB
5727.3MB
6100MB
718.33MB
8