版本控制:Subversion和TortoiseSVN的配置
 
2008-11-14 来源:flickr.com
 

1. Subversion和TortoiseSVN 是什么?

Subversion 是什么,我想如果不知道的话就没有必要看这篇文章了:》它是一个被设计用来替代cvs的版本控制工具,至于版本控制在程序开发过程中的重要性,我想,编过程序的人都应该心知肚明。官方网站中文站

TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。TortoiseSVN官方网站

2. Subversion和TortoiseSVN 下载和安装

Subversion1.4.0下载地址

TortoiseSVN 1.4.0下载地址

安装我就不废话了,TortoiseSVN 安装之后会提示重启。

3. 创建SVN储存库(repository)

安装完之后需要创建SVN储存库(repository),有两种方式(假定事先建一目录:F:\Subversion\Repository):

1)命令行方式

打开cmd,输入
svnadmin create F:\Subversion\Repository

2)通过TortoiseSVN插件进行GUI操作

在 F:\Subversion\Repository这个目录点击右键选择[TotoiseSVN]->[Create Repository href...]进行创建,版本库模式指定为默认的即可。

repository 创建完毕后会在目录下生成若干个文件和文件夹,dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部 数据;db目录就是 所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件 库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;

4. 配置用户和权限

打开/conf/目录,打开svnserve.conf找到一下两句:
# [general]
# password-db = passwd

去掉每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件。
同样打开passwd文件,将
# [users]
# harry = harryssecret
# sally = sallyssecret

这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为"用户名 = 密码",如可插入一行:admin = 123456,即为系统添加一个用户名为admin,密码为123456的用户。

5. 运行服务器

在任意目录下运行:
svnserve --daemon --root F:\Subversion\Repository

我们的服务器程序就已经启动了。其中,--daemon可简写为-d,--root可简写为-r。

可以建立一个批处理文件并放在windows启动组中便于开机就运行SVN服务,或者在这里下载svnservice.exe文件,拷贝到D:\svn\bin目录(你的Subversion安装目录\bin)下,再从命令行下执行:

svnservice -install --daemon --root " F:\Subversion\Repository "
sc config svnservice start= auto
net start svnservice

此文件会将SVN变成windows系统的一个服务,并默认为自启动,注意:执行第三句时确保前面以命令行方式运行的SVN服务已经停止,如果没停止可在其窗口中按Ctrl+C中止运行。

6. 创建项目版本树

确定SVN服务(命令行或windows服务)运行后,在你的程序目录上单击右键选择[TortoiseSVN]-> [Import...],选择好你的Repository目录,OK即可。

如果你的程序有过修改,这个时候在你的程序目录上单击右键选择Commit...,会自动提交修改内容,并使版本号增加。在程序文件夹中某个文件上右键->TortoiseSVN->Show Log,这样就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。

如果想得到最新版本,可以在某文件夹上右键选择CheckOut,会出现如图所示:

7. 为多个程序执行版本控制

可以在 F:\Subversion 下面再建立文件夹,比如TestProject,这个时候我们Import和CheckOut操作的目录就选择 F:\Subversion\TestProject。其他操作同上。

8. 尚未解决的问题:

上面步骤实现的是在单机上进行svn版本控制,但是,建立svn 服务器后,其实只需要在别的机器(客户端)安装TortoiseSVN 就可以实现和服务器的版本保持一致了。操作方式为:Import 和 CheckOut操作的目录就选择 svn://localhost/myproject(localhost改为服务器地址)。具体还没有测试,如果谁知道具体操作步骤,还请留言分享。


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织