SVN8.COM - SVN中文技术网

投递文章 投稿指南 SVN中文技术网公告:技术交流诚聘优秀版主最新公告
搜索: 您的位置主页>SVN使用>配置Subversion

配置Subversion

SVN技术网 www.svn8.com 2008-02-07 12:20:11   来源:   作者:  评论:0 点击:

   
1.3 Subversion 的特色
    当我们说起 Subversion 给版本控制系统领域带来什么特色时,最好是说说它对 CVS 的设计所作的改进。如果你不熟悉 CVS 的话,你可能不理解这里的某些特性。如果你对版本控制也不了解,最好去阅读一下第二章:基本概念。在第二章我们给出了对版本控制的一般性的介绍。

    Subversion 的特性:
    目录控制
        CVS 只能跟踪单个文件的历史,而 Subversion 实现了一个"虚拟"的受控文件系统,可以跟踪整个目录的变更。

    真正的版本历史
        由于 CVS 只限于记录文件的版本信息,像文件复制、重命名这样的操作它就不支持了。而这些操作是会实实在在发生的,它们改变了所对应目录的内容。另外,在 CVS 中,如果你要用一个新文件来替换一个旧文件,并且两个文件名称相同的话,新文件将不得不继承旧文件的历史信息。即使是两个文件毫不相干也是这样。而在 Subversion 中,我们可以添加、删除、复制和重命名文件和目录。每一个新添加的文件都将拥有它自己的全新的历史信息。

    原子化提交
        一个变更集要么完整地被提交到仓库中,要么不做任何改变。这就允许开发人员把构造和提交修改当作一个逻辑上的整体来看。从而避免发生不完整地提交变更的情况。

    受控元数据
        每一个文件和目录都有一个与其对应的属性集。你可以创建和保存任何"键名/键值"对来辅助文件本身。而这些属性就像文件内容一样,也是受版本控制系统控制的。

    可选的网络层
        Subversion 仓库的存取是一个抽象概念,有利于其他人实现新的网络访问机制。Subversion 可以作为一个外部模块插入到 Apache HTTP 服务器中。这带给它在稳定性和互操作性方面的巨大优势。并且,Subversion 可以方便的利用 Apache 所提供的功能――身份认证、权限管理、数据压缩等等。还有一个更轻量级的、单独的 Subversion 服务器叫做 Subversion server process。它引入了一种自定义的协议,可以很容易的使用 SSH 来建立通道。

    一致的数据处理
        Subversion 使用一种二进制的比较算法来表示文件之间的区别。它在文本文件(可阅读的)和二进制文件(不可阅读的)上是没有区别的。两种类型的文件经过压缩后都同样的存放在仓库中,唯一的不同就是在网络上传输时的方法。

    高效的分支和标记
        分支和标记所带来的开销与项目的规模并没有直接的关系。Subversion 在创建分支和标记时使用类似"连接"的方式来复制项目。这样这些操作就只会耗费很少的通常是一个固定长度的时间。

    扩展能力
        Subversion 没有什么历史包袱;它是由一组设计良好的 APIs实现的,包含在 C 的共享库中。这使得它很容易维护。也很容易被其他应用程序或语言使用。

1.4 Subversion 的结构
    图1.1,"Subversion 结构"描述了 Subversion 的一个很粗略的设计思路。

    在系统的一端是存放着所有受控制数据的 Subversion 仓库。另一端是 Subversion 的客户端程序,管理着受控数据的一部分在本地的映射(称为"工作副本")。在这两端之间,是通过各种仓库存取层(Repository Access,RA)的多条通道。这些通道中,有些要使用计算机网络,再通过用来访问 Subversion 仓库的服务器。而有些则完全绕过了网络,直接对仓库进行操作。

1.5 安装 Subversion
    Subversion 是建立在一个叫做 APR(the Apache Portable Runtime library)的可移植运行库之上的。这也就是说,Subversion 可以运行在任何 Apache 服务器可以运行的操作系统之上:Windows、Linux,各种类型的 BSD、Mac OS X,Netware 以及其他的系统。
    获得 Subversion 的最简单的方法就是下载适合于你的操作系统的二进制软件包。Subversion 的站点(http://subversion.tigris.org)一般会有这样的下载连接。通常来说,使用 Microsoft 操作系统的用户都可以得到有图形界面的安装程序。如果你使用的是类似 Unix 的操作系统的话,可以使用合适的打包分发系统(RPMs,DEBs,the ports tree等等)来获取。
    同时,我们也可以直接使用源代码来编译 Subversion 。首先从它的官方站点下载最新的源代码发布。然后将其解压缩,按照 INSTALL 文件中的指示来编译系统。值得注意的是,一个发行版的源代码包中包含了许多工具,足够你编译出一个可以和远程仓库连接的命令行工具(一般来说,有 apr、apr-util和一个初始的库)。但是 Subversion 中一些可选的部分则需要许多其他软件支持,例如 Berkeley DB 或者 Apache 。如果你要编译一个完全的系统的话,必须保证拥有 INSTALL 文件中提到的所有的软件包。而如果你想使用 Subversion 本身来获取代码的话,可以用你的客户端程序来得到最实时的源代码。在"获取源代码"一节中,我们将详细介绍有关情况。

1.6 Subversion 的组件
    一旦 Subversion 成功安装,我们将会看到多个不同的应用程序。下面我们就来大致的看一下都有些什么组件。如果下面的这些简要说明让您感到迷惑的话,请先别着急。这本书还有许多页是专门为您消除这些困惑的。

    svn
        一个命令行式的客户端程序;

    svnversion
        报告本地工作副本状态(用当前档案的修订版本号表示)的程序;

    svnadmin

技术交流 录入:SVN中文技术网[www.svn8.com]
Tags:  
责任编辑:
  • 请文明参与讨论,禁止漫骂攻击。 用户名:新注册) 密码: 匿名:
    评论总数:0 [ 查看全部 ] 网友评论
    关于我们 - 联系我们 - 广告服务 - RSS订阅 - 网站地图 - 返回顶部