应用介绍

TortoiseSVN 的历史
在2002年,Tim Kemp 发现 Subversion 是一个很不错的版本控制系统,但是没有好的图形化客户端,创建一个作为 Windows 外壳集成的 Subversion 客户端的创意来自 TortoiseCVS,一个非常类似的 CVS 客户端。
Tim 学习了 TortoiseCVS 的源代码,将其作为 TortoiseSVN 的基础,而后开始这个项目,注册了域名 tortoisesvn.org,并将源代码提交到网上。这个时候 Stefan Küng 正在寻找一个好的免费版本控制系统,他发现了 Subversion 与 TortoiseSVN,由于 TortoiseSVN 还不可以使用,他加入了这个项目并开始编程。很快他便重写了几乎所有代码,并且开始添加命令与特性,这个时候,最初的代码都已经不复存在了。
随着 Subversion 越来越稳定,吸引了越来越多的用户开始使用 TortoiseSVN 作为他们的 Subversion 客户端。用户群增长迅速(每天都持续增长)。Lübbe Onken 提供了很多漂亮图标与 TortoiseSVN 的 logo,仔细照料网站并且管理翻译。
TortoiseSVN 的特性
1.外壳集成
TortoiseSVN 与Windows 外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。
并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,与文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如重载图标可能不会显示。
2.重载图标
每个版本控制的文件与目录的状态使用小的重载图标表示,可以让你立刻看出工作副本的状态。
3.Subversion 命令的简单访问
所有的 Subversion 命令存在于资源管理器的右键菜单,TortoiseSVN 在那里添加子菜单。
因为 TortoiseSVN 是一个 Subversion 客户端,我们也很愿意为你展示一些 Subversion 本身的特性:
4.目录版本控制
CVS 只能追踪单个文件的历史,但是 Subversion 实现了一个虚拟文件系统,可以追踪整个目录树的修改,文件与目录都是版本控制的,结果就是可以在客户端对文件与目录执行移动与复制命令。
5.原子提交
提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。
6.版本控制的元数据
每个文件与目录都有一组附带的属性,你可以发明与保存任何的键/值对,属性是版本控制的,就像文件内容。
7.可选的网络层
Subversion 在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion 的高级服务器是 Apache 网络服务器的一个模块,使用 HTTP 的变种协议 WebDAV/DeltaV 通讯,这给了 Subversion 在稳定性与交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩与版本库浏览等等。也有一个轻型的,独自运行的 Subversion 服务器,这个服务器使用自己的协议,可以轻松的用 SSH 封装。
8.一致的数据处理
Subversion 使用二进制文件差异算法显示文件的区别,对于文本(人类可读)与二进制(人类不可读)文件具有一致的操作方式,两种类型的文件都压缩存放在版本库中,差异在网络上双向传递。
9.有效的分支与标签
分支与标签的代价不与工程的大小成比例,Subversion 建立分支与标签时只是复制项目,使用了一种类似于硬链接的机制,因而这类操作平常只会花费很少并且相对固定的时间,与很小的版本库空间。
10.良好的维护能力
Subversion 没有历史负担,它由一系列良好的共享 C 库实现,具有定义良好的 API,这使 Subversion 非常容易维护,可以轻易的被其他语言与程序使用。