SVN中文文档

使用Subversion进行版本控制。

1.6版本

编译自SVN版本 38063

作者:

Ben Collins-Sussman

BrianW.Fitzpatrick

C. Michael Pilato

第一章 什么是Subversion

1. Subversion是否是适合你的工具

如果你是一个管理者想要使用Subversion,首先你必须要问自己,“Subversion是否是适合你的工具”,虽然Subversion是一个很炫的东西,但他并不是万能的。

如果你想要存取旧文件,抑或检查一段时间内文件的变化,那Subversion就是你想要的那个工具了。如果你正让一个团队进行协作开发,而且想监控成员对代码的更改,Subversion也再适合不过了。

Subversion让团队合作更加紧密,代码更加安全,当然我们还是需要一个小小的代价就是设置一个管理者,管理Subversion。

2. Subversion的历史

在千禧年开始不久,CollabNet公司开始寻找开发者来开发一个CVS的代替品。尽管CVS是CollabNet公司最早使用的版本控制工具,CollabNet一开始就发现了CVS存在的很多缺陷与不足带来的局限。CollabNet公司原本希望可以找到一个更好的版本控制工具,但是CVS逐渐成为了开源世界版本控制器的标准,因为那个时间找不到比CVS更好的开源版本控制工具了。于是CollabNet公司开始计划开发出一个新的版本控制工具,它既可以继承CVS的理念,而且比CVS更加完善。

2000年2月,他们联系了Karl Fogel,《Open Source Development with CVS》的作者,询问他是否愿意加入这个新项目中。这个时间,正好Karl Fogel正在与好友Jim Blandy讨论设计一个新的版本控制器。1995年,他们成立了Cyclic Software公司,这是一个提供CVS服务的公司,尽管他们后来卖掉了这个公司,但他们仍然使用很多CVS的工作,而CVS的缺陷让他们思考使用一个新的方法去管理他们的数据。于是他们开始思考一个新的版本控制器,最早就只有一个“Subversion”的名称而已。得到CollabNet的邀请后,Karl马上答应加入到这个项目中,而Jim因为加入RedHat,而无暇投入到Subversion项目中。于是CollabNet聘请了Karl 和 Ben Collins-Sussman,2000年5月,Subversion进入详细设计阶段。

Subversion开始后,受到了开源社区的关注,一开始Subversion像CVS一样有很多的缺陷,但一年后,Subversion已经开始逐渐成为CVS的替代品。

3. SVN架构图

SVN中文文档

4. SVN组件

Subversion, 安装后分为很多个组件. 下面简单介绍一个组件。不要强记这件组件,下面还会有很多篇章详细的介绍各组件的作用与使用方法。

svn

客户端命令行程序

svnversion

报告客户端状态的程序

svnlook

查看版本库的工具

svnadmin

新建,调整或修理版本库的工具

mod_dav_svn

ApacheHttpServer的插件

svnserve

SVN的服务器程序

svndumpfilter

过滤SVN垃圾的工具

svnsync

    两个版本库之间映射的工具

第二章 SVN的基本概念

      这一章,是对SVN一个简介,如果你刚刚使用版本控制器,这章对你来说就非常有用了。我们会从版本控制器的一般概念开始讲起,从而引申出Subversion背后的一些理念,同时讲一个SVN的基本使用。

     尽管这里面的例子描述代码开发者怎样共享代码,但记得SVN的作用不仅于此。

1. 版本库(Repository)

Subversion 是一种信息共享的中心系统,而他的核心就是版本库。版本库是存储代码的地方,SVN的版本以树形文件的形式来存储信息,所有的客户端连接到版本库后,在权限允许的范围内浏览版本库中的内容,通过修改版本库,其修改的内容可以被其他客户端所共享。

下面是客户端与版本库交互的示意图:

SVN中文文档

到这里,我们发现这是一个典型的文件服务器,但版本库的作用并不只是这样。因为版本库可以保存文件更新的历史,比如我们可以询问版本库,“星期三的时候这个文件夹里面包含了哪些文件”。还有“谁修改了这些文件,做了哪些修改”等。这个功能同时也是版本库的核心。

相关推荐