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改为服务器地址)。具体还没有测试,如果谁知道具体操作步骤,还请留言分享。
|