推荐《Version Control with Subversion》

来源:互联网 发布:鲁班软件一套多少钱 编辑:程序博客网 时间:2024/04/29 09:35

      《Version Control with Subversion》是一本subversion的手册,同时也是一本不错的入门书。

        这本书的一个特点是免费、可在线下载、不断更新。书本身也是用subversion这个工具来维护着它的版本的,这确实很好:可允许多人编辑、各人提交,然后演变到下一版本。我看的版本是r4331的。

        手册的原则是易懂。书中首先简单介绍subversion里用到基本概念:如repository、working copy、subversion的copy-modify-merge模式、revision、subversion的常见操作等。接着第二章描述subversion在日常使用的流程:基本上就是check out、update、modify、difference、commit、resolve conflicts。跟着第三章进一步讲解高级点的东西:包括revision在命令里的表示方式(除了可用数字表示之外,还可用日期)、revision又可分为peg revision和operative revision(这个peg revision,除非是比较刁钻的使用者,常人一般都用不上)、可附在repository里的各种目录或文件上的properties(目录和文件有版本演化的记录,而附在它们上面的properties同样也版本演化的记录。properties主要是用来描述目录或文件的一些性质,如文件的content-type,此外,subversion里的一些高级功能也要借助properties来实现)、文件的上锁、subversion的客户端的隐私数据的存放等。第四章着重讲述开发人员都常碰到的Branching和merging,自己在工作上的merging大多是利用Beyond Compare逐个文件对比来完成的,即使是subversion提供了merge的命令,但总怕漏掉了些东西。其中,书中提到vendor branches很不错,说的是在开发的过程中需要用第三方的开源库,而又想对该库进行定制,同时又想保持与up stream的同步,就可在开发的trunk里建个目录用来存放自己对该库的定制代码,同时另建个branch来存放该库的源码(这个branch就称为vendor branch)。每当该库有新版出来后,就可将新版本的代码在合并到该库对应的vendor branch里,然后再将vendor branch里的修改merge到trunk里去。第五章是教一个subversion管理员如何管理repository的;而第七章是教授如何对subversion的客户端进行定制以适合自己的口味。第六章详细讲解了如何在服务器端配置、启动subversion,包括svnserve、apache http(s)等方式。其中svnserve的启动方式又可有多种:如手动在后台启动、用inetd启动、通过SSH来启动、在windows平台的话可将svnserve作为服务来启动、在Mac OS X平台的话可将svnserve作为lauchd job来启动。Apache的配置要比svnserve要复杂点,不过应该也复杂不了多少,虽然我没弄过。第八章就是面向开发人员的,讲解subversion里的各模块、开放的接口,以便让人开发类似Tortoise SVN的软件。

       除了第五和第八章外,全书匆匆看完,subversion的初级、中级、高级的用法都介绍了一遍了,如果想更进一步了解subversion里的工作细节和学习其软件架构,就需要阅读源代码了。