subversion(项目管理工具)
详情介绍
subversion是一款自由开源的版本控制系统,在这款软件的管理下,用户能够随时随地的进行文件版本的更替,特别是对于开发者来说,一个程序开发出来肯定不会只有一种版本,如果觉得新版本的功能没有旧版本的好,那么就可以通过这款软件还原版本了。
subversion会将用户的各类文件放到一个中心版本库里,这个版本库长得很像一个普通的文件服务器,不同的是,它会记录用户每次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本了,并可以查看数据的更改细节。subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作,从某种程度上来说,这种形式也让我们的团队能够轻而易举的就能够进行团队协作。
如果你是一位软件开发者,你想要对自己的版本进行更好的管理,那么不要错过这款subversion,它是一款开源免费的版本管理工具,而且在团队合作商也有着不错的帮助。
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的,也是差不多的,这里就不多说了。
至于服务器权限的高级配置,再探讨。
CVS是最基本的版本控制系统。Subversion包含了CVS的大部分功能,并且针对有些功能还稍加改进。
·目录的版本化
Subversion将目录名以版本号的形式体现。
·基于版本的复制,删除和重命名
无论复制、删除还是重命名,都会被打上版本号,尽管这听上去有些奇怪。
·自由的版本化元数据操作
Subversion允许任何元数据附加在文件或目录中。这些属性是键/值对,并且被版本化。Subversion也提供对修订版附加任何键/值属性的方法,这些属性不会被版本化,因为他们会自动将元数据附加到版本空间中,但他们可以随时被更改。
·混合追踪
Subversion 1.5开始加入了混合追踪功能。
·文件锁
支持文件锁定,当多个用户试图编辑同一个文件时会收到警告。
·Apache网络服务的支持,基于WebDAV/DeltaV协议
使用基于HTTP的WebDAV/DeltaV协议进行网络通信,而Apache网络服务器提供网络存储的站点服务。
·可执行的标签
当一个文件是可执行的时候,Subversion会提示,并且当这个可执行的文件被放在版本控制中时,Subversion会防止该程序检查其他目录。
·独立进程模式
Subversion可以运行在独立模式下
·一个只读的存储镜像
Subversion提供一个工具,SVNsync, 用于同步主服务器上的 文件到一个子存储服务器上,并且标为只读的属性
* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
* 重命名、复制、删除文件等动作都保存在版本历史记录当中。
* 对于二进制文件,使用了节省空间的保存方法(简单的理解,就是只保存和上一版本不同之处)。
* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
* 分支的开销非常小。
* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到,这样减少了很多不必要的和数据库主机之间的网络流量。
CVS只能跟踪单个文件的变更历史,但是Subversion实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。在Subversion中,文件和目录都是版本化的。
真实的版本历史
由于只能跟踪单个文件的变更,CVS无法支持如文件拷贝和改名这些常见的操作——这些操作改变了目录的内容。同样,在CVS中,一个目录下的文件只要名字相同即拥有相同的历史,即使这些同名文件在历史上毫无关系。而在Subversion中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文件之间的历史联系问题。
原子提交
一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户就可以将相关的更改组成一个逻辑整体,防止出现只有部分修改提交到版本库的情况。
版本化的元数据
每一个文件和目录都有自己的一组属性——键和值,可以根据需要建立并存储任何键/值对。与文件本身的内容一样,属性也在版本控制之下。
可选的网络层
Subversion在版本库访问的实现上具有较高的抽象程度,利于人们实现新的网络访问机制。Subversion可以作为一个扩展模块嵌入到Apache之中,这种方式在稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术——认证、授权和传输压缩等。此外,Subversion自身也实现了一个轻型的、可独立运行的服务器软件,这个服务器使用了一个自定义协议,可以轻松地使用SSH封装。
一致的数据操作
Subversion用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的,两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。
高效的分支和标签操作
在Subversion中,分支与标签操作的开销与工程的大小无关。Subversion的分支和标签操作只是一种类似于硬链接的机制拷贝整个工程,因而这些操作通常只会花费很少且相对固定的时间。
可修改性
Subversion没有历史负担,它以一系列优质的共享C程序库的方式实现,具有定义良好的API,这使得Subversion非常容易维护,和其它语言的互操作性很强。
subversion会将用户的各类文件放到一个中心版本库里,这个版本库长得很像一个普通的文件服务器,不同的是,它会记录用户每次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本了,并可以查看数据的更改细节。subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作,从某种程度上来说,这种形式也让我们的团队能够轻而易举的就能够进行团队协作。
如果你是一位软件开发者,你想要对自己的版本进行更好的管理,那么不要错过这款subversion,它是一款开源免费的版本管理工具,而且在团队合作商也有着不错的帮助。
安装配置
由于subversion只是一个服务器,用户想要可视化界面的话需要Tortoisesvn来进行可视化操作。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的,也是差不多的,这里就不多说了。
至于服务器权限的高级配置,再探讨。
功能介绍
·包含绝大部分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下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
* 重命名、复制、删除文件等动作都保存在版本历史记录当中。
* 对于二进制文件,使用了节省空间的保存方法(简单的理解,就是只保存和上一版本不同之处)。
* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
* 分支的开销非常小。
* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到,这样减少了很多不必要的和数据库主机之间的网络流量。
软件特性
版本化的目录CVS只能跟踪单个文件的变更历史,但是Subversion实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。在Subversion中,文件和目录都是版本化的。
真实的版本历史
由于只能跟踪单个文件的变更,CVS无法支持如文件拷贝和改名这些常见的操作——这些操作改变了目录的内容。同样,在CVS中,一个目录下的文件只要名字相同即拥有相同的历史,即使这些同名文件在历史上毫无关系。而在Subversion中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文件之间的历史联系问题。
原子提交
一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户就可以将相关的更改组成一个逻辑整体,防止出现只有部分修改提交到版本库的情况。
版本化的元数据
每一个文件和目录都有自己的一组属性——键和值,可以根据需要建立并存储任何键/值对。与文件本身的内容一样,属性也在版本控制之下。
可选的网络层
Subversion在版本库访问的实现上具有较高的抽象程度,利于人们实现新的网络访问机制。Subversion可以作为一个扩展模块嵌入到Apache之中,这种方式在稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术——认证、授权和传输压缩等。此外,Subversion自身也实现了一个轻型的、可独立运行的服务器软件,这个服务器使用了一个自定义协议,可以轻松地使用SSH封装。
一致的数据操作
Subversion用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的,两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。
高效的分支和标签操作
在Subversion中,分支与标签操作的开销与工程的大小无关。Subversion的分支和标签操作只是一种类似于硬链接的机制拷贝整个工程,因而这些操作通常只会花费很少且相对固定的时间。
可修改性
Subversion没有历史负担,它以一系列优质的共享C程序库的方式实现,具有定义良好的API,这使得Subversion非常容易维护,和其它语言的互操作性很强。
猜您喜欢
- Java开发中常用的开发工具
- Java开发软件合集为用户提供了许多优秀的java开发工具。通过这些java开发工具软件开发者可以更加便捷地创建、测试、调试和部署Java应用程序。Java开发工具通常包括集成开发环境(IDE)、编译器、调试器、构建工具、测试框架和版本控制软件等。其中,常用的Java开发工具包括IntelliJ IDEA、NetBeans、JDK、Maven、JUnit等。这些工具能够帮助Java开发人员快速开发高质量的应用程序,并提高代码的可维护性和可扩展性。欢迎下载使用!
-
IntelliJ IDEA 2024 v2024.2.3官方版 编程软件 / 1.01G
-
geany文本编辑器 v1.34 编程软件 / 15.08M
-
eclipse中文版 v4.30.0官方版 编程软件 / 348.4M
-
GNU Emacs编辑器中文版 v29.1最新版 编程软件 / 71.97M
-
apache netbeans ide官方版 v19.0 编程软件 / 469.13M
-
junit4 jar包官方版 v4.13.2 编程其它 / 1.6M
同类软件
网友评论
共0条评论(您的评论需要经过审核才能显示)
分类列表
类似软件
-
VisualSVN Server官方版 v5.3.2 服务器区 / 11.59M
精彩发现
换一换精品推荐
-
Xlight FTP Server官方版 v3.9.4.1 服务器区 / 1.69M
查看 -
Winmail Mail Server(邮件服务器软件) v7.1 服务器区 / 263.5M
查看 -
IIS Crypto官方版(iis服务器安全管理工具) v3.3 服务器区 / 160K
查看 -
IIS Express官方版 v10.0 服务器区 / 8.4M
查看 -
apmserv 5.2.6 v5.2.6电脑版 服务器区 / 37.64M
查看
专题推荐
本类排行
月排行总排行