subversion(svn) for windows 1.9.5
分享到:
subversion是一款自由开源的版本控制系统,在这款软件的管理下,用户能够随时随地的进行文件版本的更替,特别是对于开发者来说,一个程序开发出来肯定不会只有一种版本,如果觉得新版本的功能没有旧版本的好,那么就可以通过这款软件还原版本了。
subversion会将用户的各类文件放到一个中心版本库里,这个版本库长得很像一个普通的文件服务器,不同的是,它会记录用户每次文件和目录的修改情况,这样就可以借此将数据恢复到以前的版本了,并可以查看数据的更改细节。subversion的版本库可以通过网络访问,从而使用户可以在不同的电脑上进行操作,从某种程度上来说,这种形式也让我们的团队能够轻而易举的就能够进行团队协作。
如果你是一位软件开发者,你想要对自己的版本进行更好的管理,那么不要错过这款subversion,它是一款开源免费的版本管理工具,而且在团队合作商也有着不错的帮助。
1、建立目录,存放所有仓库,这里为 "D:svnhome"。
2、创立独立仓库,存放各个项目(project1, project2)
svnadmin create D:svnhomeproject1
svnadmin create D:svnhomeproject2
好了,有些朋友可能会出现下面的问题:
没关系,我们可以把工作目录切换到Subversion的安装目录下
在这里,我的Subversion安装目录是:D:Program FilesSubversion,那么,可执行文件就在 D:Program FilesSubversionbin里面了。
当然,你也可以使用Tortoisesvn创建仓库,先建立一个仓库目录D:svnhomeproject1,在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:svnhomeproject1confsvnserve.conf (库配置文件),加入下面几行!每行前面不能有任何字符,不然会报错!
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
2、编辑文件 D:svnhomeproject1confpasswd (存放用户及密码),增加新用户,加入
[users]
admin=123456
3、编辑文件 D:svnhomeproject1confauthz (权限相关),给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/soft/5287.html来进行可视化操作。1、建立目录,存放所有仓库,这里为 "D:svnhome"。
2、创立独立仓库,存放各个项目(project1, project2)
svnadmin create D:svnhomeproject1
svnadmin create D:svnhomeproject2
好了,有些朋友可能会出现下面的问题:
没关系,我们可以把工作目录切换到Subversion的安装目录下
在这里,我的Subversion安装目录是:D:Program FilesSubversion,那么,可执行文件就在 D:Program FilesSubversionbin里面了。
当然,你也可以使用Tortoisesvn创建仓库,先建立一个仓库目录D:svnhomeproject1,在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:svnhomeproject1confsvnserve.conf (库配置文件),加入下面几行!每行前面不能有任何字符,不然会报错!
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
2、编辑文件 D:svnhomeproject1confpasswd (存放用户及密码),增加新用户,加入
[users]
admin=123456
3、编辑文件 D:svnhomeproject1confauthz (权限相关),给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下,任何一次提交都会对所有文件增加到同一个新版本号,即使是提交并不涉及的文件。所以,各文件在某任意时间的版本号是相同的。版本号相同的文件构成软件的一个版本。* 原子提交。一次提交不管是单个还是多个文件,都是作为一个整体提交的。在这当中发生的意外例如传输中断,不会引起数据库的不完整和数据损坏。
* 重命名、复制、删除文件等动作都保存在版本历史记录当中。
* 对于二进制文件,使用了节省空间的保存方法(简单的理解,就是只保存和上一版本不同之处)。
* 目录也有版本历史。整个目录树可以被移动或者复制,操作很简单,而且能够保留全部版本记录。
* 分支的开销非常小。
* 优化过的数据库访问,使得一些操作不必访问数据库就可以做到,这样减少了很多不必要的和数据库主机之间的网络流量。
软件特性
Subversion支持:版本化的目录
CVS只能跟踪单个文件的变更历史,但是Subversion实现的“虚拟”版本化文件系统则可以跟踪目录树的变更。在Subversion中,文件和目录都是版本化的。
真实的版本历史
由于只能跟踪单个文件的变更,CVS无法支持如文件拷贝和改名这些常见的操作——这些操作改变了目录的内容。同样,在CVS中,一个目录下的文件只要名字相同即拥有相同的历史,即使这些同名文件在历史上毫无关系。而在Subversion中,可以对文件或目录进行增加、拷贝和改名操作,也解决了同名而无关的文件之间的历史联系问题。
原子提交
一系列相关的更改,要么全部提交到版本库,要么一个也不提交。这样用户就可以将相关的更改组成一个逻辑整体,防止出现只有部分修改提交到版本库的情况。
版本化的元数据
每一个文件和目录都有自己的一组属性——键和值,可以根据需要建立并存储任何键/值对。与文件本身的内容一样,属性也在版本控制之下。
可选的网络层
Subversion在版本库访问的实现上具有较高的抽象程度,利于人们实现新的网络访问机制。Subversion可以作为一个扩展模块嵌入到Apache之中,这种方式在稳定性和交互性方面有很大的优势,可以直接使用服务器的成熟技术——认证、授权和传输压缩等。此外,Subversion自身也实现了一个轻型的、可独立运行的服务器软件,这个服务器使用了一个自定义协议,可以轻松地使用SSH封装。
一致的数据操作
Subversion用一个二进制差异算法描述文件的变化,对于文本(可读)和二进制(不可读)文件其操作方式是一致的,两种类型的文件压缩存储在版本库中,而差异信息则在网络上双向传递。
高效的分支和标签操作
在Subversion中,分支与标签操作的开销与工程的大小无关。Subversion的分支和标签操作只是一种类似于硬链接的机制拷贝整个工程,因而这些操作通常只会花费很少且相对固定的时间。
可修改性
Subversion没有历史负担,它以一系列优质的共享C程序库的方式实现,具有定义良好的API,这使得Subversion非常容易维护,和其它语言的互操作性很强。
展开更多
subversion(svn) for windows 1.9.5下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: