Subversion(简称SVN)是
九点小编为大家推荐的推荐的一个开源的版本控制系统,它可以帮助软件团队协作开发和管理项目的源代码。Subversion 的主要功能包括版本控制、文件追踪、分支和标记、版本历史记录、权限管理等。Subversion 最初是由 CollabNet 公司开发,其中的版本号遵循 Apache Group 的规范,即主版本号.次版本号.修正版本号,在 Subversion 中也叫做 release.major.minor。Subversion 使用一种名为“复制-修改-合并”的机制来管理源代码的版本,这种机制确保团队成员之间的修改不会互相冲突。Subversion 有一个命令行工具,也有多个图形化的客户端工具,例如 TortoiseSVN、eclipse svn插件、subclipse等。Subversion 使用 Apache License 2.0 发布,成为 Apache 基金会的顶级项目之一。它已经广泛应用于许多开源项目和商业项目中。
Subversion1.9.5安装配置
由于subversion只是一个服务器,用户想要可视化界面的话需要Tortoisesvn/soft/5287.html来进行可视化操作。
1、建立目录,存放所有仓库,这里为 "D:\svnhome"。
2、创立独立仓库,存放各个项目(project1, project2)
svnadmin create D:\svnhome\project1
svnadmin create D:\svnhome\project2
好了,有些朋友可能会出现下面的问题:
没关系,我们可以把工作目录切换到Subversion的安装目录下
在这里,我的Subversion安装目录是:D:\Program Files\Subversion,那么,可执行文件就在 D:\Program Files\Subversion\bin里面了。
当然,你也可以使用Tortoisesvn创建仓库,先建立一个仓库目录D:\svnhome\project1,在project1上面点击右键,如下
3、启动服务器
svnserve -d -r D:\svnhome
至此,你的SVN服务器已经可以访问了!访问地址为:
svn://127.0.0.1/project1 或 file:///D:/svnhome/project1
svn://127.0.0.1/project2 或 file:///D:/svnhome/project2
如果不是在本机访问,必须把回路IP改成局域网或公网IP。注意你家的防火墙!
四、服务器简单配置
1、编辑文件 D:\svnhome\project1\conf\svnserve.conf (库配置文件),加入下面几行!每行前面不能有任何字符,不然会报错!
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
2、编辑文件 D:\svnhome\project1\conf\passwd (存放用户及密码),增加新用户,加入
[users]
admin=123456
3、编辑文件 D:\svnhome\project1\conf\authz (权限相关),给admin写入权限,加入
[/]
admin=rw
现在,你就可以该用户来访问你的SVN服务器了。
以上步骤均基于Windows操作系统,至于Linux的,也是差不多的,这里就不多说了。
至于服务器权限的高级配置,再探讨。
Subversion1.9.5功能
·包含绝大部分CVS的功能
CVS是最基本的版本控制系统。Subversion包含了CVS的大部分功能,并且针对有些功能还稍加改进。
·目录的版本化
Subversion将目录名以版本号的形式体现。
·基于版本的复制,删除和重命名
无论复制、删除还是重命名,都会被打上版本号,尽管这听上去有些奇怪。
·自由的版本化元数据操作
Subversion允许任何元数据附加在文件或目录中。这些属性是键/值对,并且被版本化。Subversion也提供对修订版附加任何键/值属性的方法,这些属性不会被版本化,因为他们会自动将元数据附加到版本空间中,但他们可以随时被更改。
·混合追踪
Subversion 1.5开始加入了混合追踪功能。
·文件锁
支持文件锁定,当多个用户试图编辑同一个文件时会收到警告。
·Apache网络服务的支持,基于WebDAV/DeltaV协议
使用基于HTTP的WebDAV/DeltaV协议进行网络通信,而Apache网络服务器提供网络存储的站点服务。
·可执行的标签
当一个文件是可执行的时候,Subversion会提示,并且当这个可执行的文件被放在版本控制中时,Subversion会防止该程序检查其他目录。
·独立进程模式
Subversion可以运行在独立模式下
·一个只读的存储镜像
Subversion提供一个工具,SVNsync, 用于同步主服务器上的 文件到一个子存储服务器上,并且标为只读的属性
SVN与CVS对比的优点
* 统一的版本号。CVS是对每个文件顺序编排版本号,在某一时间各文件的版本号各不相同。而Subversion下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。
* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
* 重命名、复制、删除文件等动作都保存在版本历史记录当中。
* 对于二进制文件,使用了节省空间的保存方法(简单的理解,就是只保存和上一版本不同之处)。
* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
* 分支的开销非常小。
* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到,这样减少了很多不必要的和数据库主机之间的网络流量。
Subversion1.9.5特性
Subversion适用:
版本变的目录
CVS只有追踪单独文件的变动历史时间,可是Subversion达到的“虚似”版本化文件系统软件则可追踪目录树变动。在Subversion中,文件和目录全是版本变的。
真实版本历史时间
因为只有追踪单独文件的变动,CVS没法适用如文件复制和更名这种比较常见的操作——这种操作影响了目录内容。一样,在CVS中,一个目录中的文件只需名称同样即有相同历史,即便这种同名的文件古代历史无关。但在Subversion中,能够对文件或目录开展提升、复制和更名操作,也解决了同名的而不相干的文件间的历史时间联络难题。
分子递交
一系列有关的变更,要不所有提交到版本库,要不一个都不递交。那样客户就可以把有关的变更组成一个逻辑性总体,避免出现仅有一部分改动提交到版本库的现象。
版本变的数据库
每一个文件和目录都有各自的一组属性——键合值,可以根据实际情况创建并存放一切键/值对。与文件自身的具体内容一样,属性还在版本操纵下。
可供选择的传输层
Subversion在版本库访问的完成上具有很高的抽象程度,有利于我们完成一个新的网站访问体制。Subversion能够作为一个扩展模块嵌入到Apache当中,这种方法在可靠性和互动性方面有着很大的优势,可以直接用云服务器关键技术——验证、受权和传送缩小等。除此之外,Subversion本身也实现了一个轻形的、可单独运转的服务器程序,这一服务器使用了一个自定协议书,能够轻松地选择SSH封装形式。
一致的数据信息操作
Subversion用一个二进制差别算法描述文件的改变,针对文字(能读)和二进制(不能读)文件其操作方法是一致的,两类的文件缩小保存在版本库中,而差别信息内容则在互联网上双重传送。
高效率的支系和标识操作
在Subversion中,支系与标识操作的花销与工程大小不相干。Subversion分支和标识操作只是一种类似硬链接的制度复制全部工程项目,因此这种操作一般只能耗费非常少且相对性固定时间。
可修改性
Subversion并没有历史时间压力,它是以一系列高质量的分享C程序库的方式进行,具备界定较好的API,这也使得Subversion很容易维护保养,和其他语言的表达互操作能力很强。
九点软件园小编对真实下载地址介绍
1:该下载地址为九点软件园本地下载地址,subversion下载包预览图如下:
2:下载包的正确包名:subversion_9a9m.com.zip