版本控制软件SubVersion 入门

2008-02-23 09:26:39来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

版本控制软件SubVersion 入门发表日期:2005年01月25日 13:23:50 发表评论来源: 查看评论

"即使你的团队只有你一个人,你的项目只需一周的时间;即使那是'用过就扔'的原型;即使你的工作并非源码;确保每样东西都处在源码控制之下--文档、电话号码表、给供应商的备忘录、makefile、构建与发布流程、烧制CD 的shell 脚本--每样东西。"
(《程序员修练之道》)。

对于每一个程序员来讲,怎样能够最好的保护你的源代码都是最重要的一件事。一个源码控制软件就相当于一个系统级的Undo 键,当你的程序可用时,作一个标记,当程序被改的体无完肤不能运行了,你可以方便的回到上一个可用的版本,或者当你发现自己想找回上周被你删除的一个函数的时候,你可以很容易的做到这一点。

当然,好的版本控制并不止于此。对于团队开发来讲,你可以控制每个人的分工和权限。两个人可以同时编辑同一份源代码,由程序来提醒两次修改中存在的冲突。你可以查看某一处改动是谁做的。当你发布了一个正式版,可以建立一个分支,在分支上继续开发下一个版本,而对于后来发现的Bug,可以在主分支上继续改进,如果分支上同样存在这个Bug,可以将两者合并。只要修复一次就可以,这不是很诱人吗?

目前业界流行的版本控制系统有很多,商业软件比如ClearCase,配置复杂,功能强大,价格也同样对得起它的功能。而Visual Studio 自带的SourceSafe 与它的开发工具完美整合,使用方便,但是对于其它语言和工具的支持就差一些了。开源世界最著名的版本控制软件是CVS,相当一部分的开源软件都在使用这个软件,以供全球的程序员协作开发。然而,CVS 有一些与生俱来的缺点,在设计之初没有考虑到,而随着使用量和使用状况的大增,慢慢显露了出来,比如,最重要的一点,它不支持文件改名,还有,只对文件控制版本,没有目录的管理,等等。

后来,CVS 的主要作者(Fogel 等等)在他们现任公司的资助下开发了SubVersion,用以替代CVS。SubVersion 的设计目的就是针对CVS 的一些弱点进行改进。目前已经有几个知名的开源项目从CVS 转向了SubVersion 来保存源代码。SubVersion 目前发布了1.1 正式版,已经相当稳定可靠了。本文只是对SubVersion 安装和使用入门的一点引导,以便从未用过版本控制的程序员可以快速上手,先从保护你的个人代码开始。

安装:
SubVersion 对于目前流行的大部分平台都有支持,可以到subversion.tigris.org 下载各个平台的安装包,或者下载源代码在Linux 等平台上自己编译。对于Windows 平台,它也提供了安装程序。

一点说明:SubVersion 的运行分为两种情况,一种是作为独立的服务器,默认使用3690 端口,像CVS 那样来运行,支持直接连接或者SSL 连接。另一种是借助Apache2 的Webdav 功能,直接挂接在apache 上,作为它的一个模块来运行。

这两种配置方式是各有优缺点的。首先,当svn 独立运行的时候,作为一个轻型的服务器,反应速度和连接速度都要比apache 要快一些。它有自己的用户认证方式,(使用系统中现有的帐号),它比apache 更容易配置和使用。当用户以自己的身份登录以后所做的任何操作将被记录下用户名。以apache 的模块来运行的时候,整个系统是以apache 所在的身份来运行的,所有的用户(包括任何验证过的用户)都是使用这个身份的,那么你就没有办法区别不同用户的操作了。(有一个办法,就是让用户自己把名字写到每次checkin 的message 里面)。它的优点是可以使用apache 现有的架构,不需要去改动你的防火墙,而且,可以使用IE 提供最简单的查看最新版本的功能。Apache 有很多的认证方式,还有非常细致的对目录的权限管理,而且apache 是一个安全、稳定的服务器。

具体使用哪一种服务器取决于你的需求,也可以几种方式一起用,svn 并不在乎这个。但是,为了容易管理和配置,建议你还是选择其中一种。(大部分人会选择apache 的方式,因此本文只详细说明这种方式的安装和使用,对于svn 独立运行的情况作为附属的章节供大家参考。)

Windows 上的安装:安装过程很简单,双击下载回来的svn-1.1.0-setup.exe,一路回车就可以安装好了,连必须的两个环境变量都帮你配置好了。在安装目录的httpd 目录下有两个so 文件,复制到apache 的modules 目录中,bin 目录的dll 文件复制到apache 的bin 目录下或者系统的system32 目录下,(取决于你的apache 的运行状况),在apache 的httpd.conf 里面找到两行:

LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so

确保它们没有被注释掉。然后在这两行的下面添加两行:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

重启以后svn 就以apache 模块的方式来运行了。如果出现apache 启动不起来的问题,看看svn 命令是否在你的环境变量PATH 里。Linux 上的编译安装:对于下载回来的.tar.gz 文件,用tar zxvf 命令解压,进入解压出来的目录,./configure-with-apxs=/path/to/apache/bin/apxs,然后make && make install,安装完成时会自动修改你的httpd.conf 文件,添加前面那两行,不需要你再做任何操作。

配置:
安装已经完成了,接下来要让它可用还需要两步操作。

首先要确定你保存某个工程的位置。比如你要把所有的工程放在D:\repos 目录下,现在要建立一个工程project1,在命令行输入:Svnadmin create d:\repos\project1

该命令会创建这个目录,并建立所必须的一些数据库和配置文件。然后到httpd.conf 文件里添加对该目录的映射。Svn 有两种映射方式,一种是针对每个项目,确定一个虚拟目录(Location),另一种可以对一个总目录确定一个虚拟目录,其下的所有工程只要在该目录下直接输入工程名即可。第二种当然是要方便的多了。不过我们还是介绍一下第一种吧。在httpd.conf 的任意位置(如果你需要在某个虚拟主机里面实现,就添加到那个虚拟主机

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何使用 SubVersion

下一篇:[WEB开发] 基于XMLHTTP的简单实例