是什么让TortoiseSVN成为一个好的Subversion客户端?下面是一个简短的特性列表。
TortoiseSVN与Windows外壳(例如资源管理器)无缝集成,你可以保持在熟悉的工具上工作,不需要在每次使用版本控制功能时切换应用程序。
并且你不一定必须使用Windows资源管理器,TortoiseSVN的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的Windows应用程序中。你必须牢记,TortoiseSVN是有意作为Windows资源管理器的扩展开发,因此在其他程序可能集成的并不完整,例如图标覆盖可能不会显示。
每个版本化的文件和目录的状态使用小的覆盖图标表示,可以让你立刻看出工作拷贝的状态。
所有的Subversion命令存在于资源管理器的右键菜单,TortoiseSVN在那里添加子菜单。
因为TortoiseSVN是一个Subversion客户端,我们也很愿意为你展示一些Subversion本身的特性:
CVS只能追踪单个文件的历史,但是Subversion实现了一个“虚拟的”文件系统,可以追踪整个目录树的修改,文件和目录都是版本化的,结果就是可以在客户端对文件和目录执行move和copy命令。
提交要么完全进入版本库,要么一点都没有,这允许开发者以一个逻辑块提交修改。
每个文件和睦路都有一组附加的“属性”,你可以发明和保存任意的键/值对,属性是版本化的,就像文件内容。
Subversion在版本库访问方面有一个抽象概念,利于人们去实现新的网络机制,Subversion的“高级”服务器是Apache网络服务器的一个模块,使用HTTP的变种协议WebDAV/DeltaV通讯,这给了Subversion在稳定性和交互性方面很大的好处,可以直接使用服务器的特性,例如认证、授权、传输压缩和版本库浏览等等。也有一个轻型的,单独运行的Subversion服务器,这个服务器使用自己的协议,可以轻松的用SSH封装。
Subversion使用二进制文件区别算法表示文件的区别,对于文本(可读)和二进制(不可读)文件具备一致的操作方式,两种类型的文件都压缩存放在版本库中,区别信息是在网络上双向传递的。
分支与标签的代价不与工程的大小成比例,Subversion建立分支与标签时只是拷贝整个项目,使用了一种类似于硬链接的机制,因而这类操作通常只会花费很少并且相对固定的时间和很小的版本库空间。
Subversion没有历史负担,它由一系列良好的共享C库实现,具有定义良好的API,这使得Subversion非常容易维护,可以轻易的用其他语言和程序使用。