新鲜、有趣,互联生活。令狐葱。

2006/10/26

版本控制:Subversion和TortoiseSVN的配置

1. Subversion和TortoiseSVN 是什么?
 
Subversion 是什么,我想如果不知道的话就没有必要看这篇文章了:》它是一个被设计用来替代cvs的版本控制工具,至于版本控制在程序开发过程中的重要性,我想,编过程序的人都应该心知肚明。官方网站中文站
 
TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。TortoiseSVN官方网站
 
2. Subversion和TortoiseSVN 下载和安装
 
 
安装我就不废话了,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改为服务器地址)。具体还没有测试,如果谁知道具体操作步骤,还请留言分享。



 

没有评论: