当前位置:当百下载站 > 电脑软件 > 网络软件 > 服务器区 > subversion(项目管理工具)v1.14.2
subversion(项目管理工具)

subversion(项目管理工具)

版本:v1.14.2 大小:10.8MB 语言:简体中文 类别:服务器区
  • 类型:国外软件
  • 更新:2026-11-11 09:10:20
  • 系统:win7/win8/win10/win11

详情介绍

Subversion 作为一款开源且可自由使用的版本控制工具,能让使用者在任意时间、任意地点完成文件版本的切换。对开发者而言尤其如此:一个程序完成后往往不会只保留单一版本,若认为新版本的功能不如旧版本合意,便可借助这款软件将文件恢复到之前的版本。

Subversion 把用户的各种文件集中存放在一个中心版本库中。这个版本库外观上接近普通文件服务器,区别在于它会逐一记录每次对文件与目录所做的改动,因此可以把数据还原到早先的状态,也能查阅具体的修改内容。该版本库支持通过网络访问,用户因而能在不同电脑上开展工作;从一定意义上说,这种安排也让团队协作变得轻松便捷。

对于从事软件开发的人来说,若希望更有效地掌控代码版本,subversion 值得留意。这套版本管理工具开源且免费,在团队协作场景中同样能发挥较好的辅助作用。

subversion(项目管理工具) 软件截图

软件特性

版本化的目录

CVS 的版本追踪范围局限于单个文件,无法覆盖目录层面的变化;Subversion 则构建了一套“虚拟”的版本化文件系统,使整棵目录树的变更都能被记录。在该系统里,文件与目录同样具备版本化能力。

真实的版本历史

CVS 的跟踪能力仅限于单个文件,像拷贝、改名这类会改变目录内容的常见操作它都无法处理。同样地,在 CVS 里只要文件名相同,系统就认定它们共享同一段历史,哪怕这些同名文件彼此毫无关联。Subversion 则不同,它允许对文件和目录执行增加、拷贝、改名等操作,同名却无关的文件之间历史被错误关联的问题也一并得到解决。

原子提交

把一组相互关联的改动作为一个整体来处理:它们会一起进入版本库,或者全部都不进入。借助这种方式,用户能够将彼此有关的修改归并为一个逻辑单元,避免出现只把其中一部分改动写入版本库的情形。

版本化的元数据

每个文件和目录都带有一组自己的属性,也就是键值对,你可以按需创建并保存任意键值组合。这些属性跟文件内容一样,同样纳入版本控制范围。

可选的网络层

Subversion 对版本库访问方式做了高度抽象,便于开发者设计新的网络访问机制。它支持以扩展模块的形式集成进 Apache,由此获得稳定性与交互性方面的明显好处,并能直接沿用服务器已有的成熟能力,例如认证、授权和传输压缩。Subversion 本身也附带一个轻量且可独立运行的服务器程序,该程序采用自定义协议,能够方便地通过 SSH 进行封装。

一致的数据操作

Subversion 采用二进制差异算法来记录文件内容的变动,这种处理方式对文本文件(可读)与二进制文件(不可读)并无区别;两类文件都以压缩形式保存在版本库内,而差异数据则通过网络进行双向传输。

高效的分支和标签操作

Subversion 里创建分支或打标签,成本并不随项目体积增长。它的做法近似硬链接——对整个工程做一次机制性拷贝,所以这类操作耗时往往很短,且基本保持恒定。

可修改性

Subversion 的实现方式是一组高质量的共享 C 程序库,并配有清晰定义的 API,因此维护起来相当省力,与其它语言之间的互操作也很顺畅。它没有历史包袱,这一点在架构上体现得尤为明显。

功能介绍

·覆盖了CVS的绝大多数功能

Subversion 沿用了 CVS 的核心思路,并在此基础上做了若干调整,能覆盖 CVS 的多数功能;而 CVS 本身属于最基础的版本控制工具。

·目录的版本化

Subversion 会通过版本号来呈现目录名称。

·按版本进行复制、删除与重命名操作

复制也好,删除或重命名也罢,每一次操作都会被记录下对应的版本编号——这个设计初听确实让人感到有些意外。

·可灵活进行带版本管理的元数据操作

Subversion 支持将任意元数据附加到文件或目录上,这些属性以键/值对的形式存在,并且会纳入版本管理。对于修订版,Subversion 同样提供了附加任意键/值属性的方式;这类属性不受版本控制,原因是它们会自动把元数据挂接到版本空间中,不过随时都可以被修改。

·混合追踪

Subversion 自 1.5 版本起引入了混合追踪机制。

·文件锁

文件锁定机制已具备,多人同时编辑同一文件时,系统会向相关用户发出提示。

·对Apache网络服务的兼容能力,通过WebDAV/DeltaV协议实现

网络通信采用基于 HTTP 的 WebDAV/DeltaV 协议,站点服务端的网络存储功能则由 Apache 网络服务器承担。

·可执行的标签

Subversion 会针对可执行文件给出提示;若这类文件已纳入版本控制,它还会阻止该程序去检查其他目录。

·独立进程模式

Subversion 支持以独立模式运行。

·一个只读的存储镜像

Subversion 自带一个名为 SVNsync 的工具,它能够将主服务器上的文件同步至子存储服务器,并将这些文件标记为只读属性。

SVN与CVS对比的优点

* 版本编号方式统一。在 CVS 中,每个文件各自按顺序编号,同一时刻各文件的版本号并不一致;到了 Subversion,每次提交都会让所有文件共同递增到同一个新版本号,哪怕这次提交根本没动过某些文件。因此,任意时刻各文件的版本号都保持一致,而版本号相同的文件就组成了软件的一个版本。

* 原子化提交:单文件或多文件的改动均以完整单元写入,中途若出现传输中断等异常,数据库不会留下残缺状态,数据也不会受损。

文件的重命名、复制与删除等操作,均会被记录在版本历史中。

针对二进制文件,采用了一种紧凑的存储策略——通俗地说,每个版本仅记录与前一版本存在差异的部分。

版本历史同样覆盖目录层级:整棵目录树支持移动与复制,操作门槛不高,且所有版本记录都会完整保留。

* 分支的开销非常小。

对数据库访问环节做了改进,部分操作无需再连接数据库即可完成,由此省去了大量与数据库主机之间原本不必要的网络数据往来。

安装配置

TortoiseSVN 提供了图形化操作界面,因为 Subversion 本身仅作为服务器端存在,用户若想通过可视化方式使用它,就需要借助这类客户端工具来完成操作。

1、先创建一个文件夹,用来容纳全部仓库,本例中该路径为“D:\svnhome”。

2、创建独立仓库,用于存放各个项目(project1、project2)

svnadmin create D:\svnhome\project1

执行 svnadmin create D:\svnhome\project2 即可在指定路径下生成一个新的 SVN 仓库目录。

有些朋友在使用过程中可能会碰到下面这些情况:

subversion(项目管理工具) 软件截图

工作目录也可以改为指向 Subversion 的安装路径。

以本机为例,Subversion 被装到了 D:\Program Files\Subversion 这个路径下,其可执行文件则位于该目录中的 bin 子文件夹内,也就是 D:\Program Files\Subversion\bin。

subversion(项目管理工具) 软件截图

你同样可以借助Tortoisesvn来创建仓库:先建好一个仓库目录,例如D:\svnhome\project1,然后在project1文件夹上单击右键,操作如下图所示。

3、启动服务器

svnserve 以守护进程方式运行,并把 D:\svnhome 指定为版本库根目录,启动参数为 -d 和 -r。

完成上述步骤后,SVN 服务器便可正常访问,对应的访问地址是:

svn://127.0.0.1/project1 或 file:///D:/svnhome/project1

svn://127.0.0.1/project2 或者 file:///D:/svnhome/project2

若从其他设备访问,需将回路地址换成本机的局域网或公网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]

管理员账户的默认密码设定为123456。

3、打开 D:\svnhome\project1\conf\authz 这个权限配置文件,为 admin 账号添加写入权限,并保存。

[/]

admin=rw

此时,该用户已经能够访问你的 SVN 服务器。

上述操作流程针对的是 Windows 环境,Linux 下的做法与之大同小异,此处便不再展开说明。

服务器权限的高级配置先放一放,留待后续再聊。

下载地址

  • 电脑版
subversion(项目管理工具)v1.14.2

用户评论

(您的评论需要经过审核才能显示)


0条评论

↑