本文是使用Subversion最快速的说明,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
本说明分为以下几个部分。为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。
- 软件下载
- 服务器和客户端安装
- 建立版本库(Repository)
- 配置用户和权限
- 运行服务器
- 初始化导入
- 基本客户端操作
下载Subversion服务器程序。
最新Windows版本 : http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
下载Subversion的Windows客户端TortoiseSVN。
Windows常用客户端TortoiseSVN:http://tortoisesvn.net/downloads
TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
2,服务器和客户端安装
服务器安装,直接运行安装程序 ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。
安装TortoiseSVN,同样直接运行安装程序,按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。
3,建立版本库(Repository)
运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:
svnadmin create E:\svndemo\repository
就会在目录E:\svndemo\repository下创建一个版本库。
我们也可以使用TortoiseSVN图形化的完成这一步:
在目录E:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。
4,配置用户和权限
来到E:\svndemo\repository\conf目录,修改svnserve.conf:
# [general]
# password-db = passwd
改为:
[general]
password-db = passwd 然后修改同目录的passwd文件,去掉下面三行的注释:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后变成:
[users]
harry = harryssecret
sally = sallyssecret
前面是用户名,后面是口令。这样在通过svn://或者http://访问时,会要求输入正确的用户名和口令才能允许访问。
5,运行服务器
svn独立服务器:
在任意目录下运行:
svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。
把windows的console程序变成service并不是很难的事情。有个叫做svnservice.exe的程序,将其放到svnserve.exe的同一目录下,运行 svnservice -install -d -r path/to/repo,即可在windows的service管理器中注册服务。
svnserve运行之后,即可从网络上通过 svn://host
1.4以上的svn也可以通过sc.exe来创建windows服务记录:
安装服务
sc create subversion_service binpath= "c:\subversion\bin\svnserve.exe --service -r c:\svn_test\repos" displayname= "Subversion Repository" depend= Tcpip
删除服务
sc delete subversion_service
apache svn服务器:
在svn的安装目录下有 mod_*_svn.so 和 README.txt,这是Apache modules以及相关说明,将其复制到apache的modules目录下,并修改 httpd.conf,如下。
3a. Uncomment the following two lines:
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
3b. Add the following two lines to the end of the LoadModule section:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
3c. Add the following to end of the file.
DAV svn
SVNPath your/repository/path
重新启动Apache服务进程,即可通过 http://host
注:可能需要重新启动机器,以便 svn 安装程序加入到 system path 中的路径生效,使得 svn 的 dll 对 apache service 进程可见,否则 apache httpd 启动时,可能会报告找不到某些 dll 的错误信息。
另外,在我安装该服务时,用的是 appserv,这是个包含 apache, php, mysql, perl 的快速安装包,其中的 apache 版本是 2.2.8,而 svn 1.5.2 中的 mod_*_svn.so 是在 apache 2.2.9 中编译的。因此存在版本兼容的问题。我从 http://httpd.apache.org/下载了 apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi,将其中的 bin 和 modules 直接覆盖到 appserv 下的 Apache 目录中,可以直接使用。
6,初始化导入
来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\initproject,目录下有一个readme.txt文件:
右键->TortoiseSVN->Import...
URL of repository输入“svn://localhost/”
ok
完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。
需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是133.96.121.22,则URL部分输入的内容就是“svn://133.96.121.22/”。
7,基本客户端操作
取出版本库到一个工作拷贝:
来到任意空目录下,在本例中是E:\svndemo\wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/,这样我们就得到了一份工作拷贝。
在工作拷贝中作出修改并提交:
打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我们可以运行。
察看所作的修改:
readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。
更多的内容可以参考 Subversion 中文站
http://www.subversion.org.cn/?action-viewnews-itemid-1
没有评论:
发表评论