深入浅出系列之二_SubVersion 作者:风中叶
浪曦视频在线
声明
此文档为免费资料,欢迎大家转载,阅读,转载时请保持
文档的完整性,作者不保证文档的完全正确,希望大家对其中
的错误进行更正并与我联系。在写作过程中,我参考了网上大
量的资料,并摘取了其中的一部分内容,在这里向这些资料的
作者表示深深的感谢,如果您认为我侵犯了您的著作版权请告
之我,我会将相关内容删除并将结果通知您。
本文档仅代表作者本人的观点。
深入浅出系列之二_SubVersion 作者:风中叶
浪曦视频在线
目录
1 SubVersion 概述 .................................................................................................................................. 4
2 SubVersion 基本概念 .......................................................................................................................... 7
3 SubVersion 实战 ................................................................................................................................ 18
4 SubVersion 高级操作 ........................................................................................................................ 66
5 SubVersion 整合 Apache .................................................................................................................. 99
6 SubVersion 整合 Apache 高级操作 ...............................................................................................137
7 SubVersion 整合 Eclipse .................................................................................................................169
8 SubVersion 整合 NetBeans .............................................................................................................250
9 SubVersion 整合 Visual Studio.NET .............................................................................................257
10 后记 ................................................................................................................................................267
深入浅出系列之二_SubVersion 作者:风中叶
浪曦视频在线
1 SubVersion 概述
版本控制之于程序员,就好比安全网之于高空秋千表演者。知道安全网
就在那里,万一自己摔落它能够提供保护,高空秋千表演者才能放心大胆地
在空中飞跃。同样,版本控制使您有能力去冒以往想都不敢想的风险。如果
哪儿出了错,您总是可以使自己的代码回复到一个已知的、工作正常的版本。
您可以在不触及主干的分支中进行试验,而不会影响到其他小组成员。在已
经发布的产品的较老版本中发现 bug 时,您可以轻松检出特定版本,以确认、
修订,并生成该 bug 的修补程序。如果没有版本控制,您必须极为慎之又慎,
缓慢地推进,总而言之,生产力会更低。
Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或
通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、
标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能
力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion
不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他
在传统方式下未采纳版本控制功能的领域。
在开放源码程序员间,CVS 已成为一种事实上的 标准。Codehaus、
Sourceforge 和 Java™ 社区的 java.net 等站点中驻留的免费 CVS 使得为
开源项目建设存储库更为简单。以 CVS 为中心,已发展起一个大型的附件
市场,包括 TortoiseCVS、WinCVS 等工具。
与其他版本控制系统相比,CVS 最令人称道的地方就是其非锁定存储库,
这使多个开发人员能够同时检出同一个文件。CVS 在提交时解决冲突问题,
这就避免了冲突成为发展的瓶颈。CVS 第二个出色的特性就是它是一种网络
存储库。处于许多不同系统上的程序员可以通过公共的 Internet 访问相同的
存储库。
CVS 在过去的十年中,为社区提供了优质的服务,但它陈旧的劣势开始
深入浅出系列之二_SubVersion 作者:风中叶
浪曦视频在线
体现出来。首先,它实际上仅能处理 ASCII 文件。Unicode 文件会令 CVS
严重混乱。此外,CVS 存储库更改起来极为困难。CVS 没有任何关于 ―移
动‖ 操作的概念。它只能注意到,一个文件在一处被删除了,而在一个新位
置创建了另外一个文件。由于它不会连接两个操作,因此也很容易使文件历
史轨迹丢失。设置 CVS 存储库时,您必须非常谨慎地为每个文件选择准确
的位置,因为在设置之后,您几乎就要一直使用这个位置了。
在开源软件世界,并行版本系统(CVS)一直是版本控制长久以来的唯
一选择。事实证明,这是个正确的选择。CVS 本身是自由软件,不加限制的
处事风格,对网络化操作的支持(众多身处不同地方的程序员可以共享他们
的工作),都非常符合开源世界的协作精神。CVS 和它半混乱状态的开发模型
已成为开源文化的基石。
但是,和其它许多工具一样,CVS开始显露出衰老的迹象。而 Subversion,
正是以 CVS 继任者的面目出现的新型版本控制系统。Subversion 的设计者们
力图通过两方面的努力赢得 CVS 用户的青睐:保持构建开源软件版本控制系
统的方式(以及视觉和感觉上)与 CVS 尽可能类似,同时尽力弥补 CVS 许
多显著的缺陷。这些努力的结果使得从 CVS 迁移到 Subversion 不需要做出
重大的变革,Subversion 确实是非常强大、非常有用和非常灵活的工具。
CVS 已经不再适合现代开发,这一点越来越明显。特别是 CVS 只能满
足老式 C 程序员的 ASCII 需求,而对 Web 开发人员和其他非传统用户来
说,CVS 实际上根本不起作用。在您开始考虑存储整个 Web 站点时,在
CVS 中,将文件从一个目录移动到另外一个目录是关键考虑事项。因此,在
几年前,许多核心 CVS 开发人员认为,已经到了利用他们多年来使用 CVS
时学到的经验和教训、从头开始创建新一代开放源码存储库的时机。在 2004
年年初,他们的努力结出了丰硕的果实,那就是 Subversion 1.0。
程序员(特别是那些依赖版本控制的程序员)是一个非常谨慎的群体,
Subversion 着实用了很长一段时间,才得到他们的广泛接受。很少有程序员