Subversion配置安装
1.学习资源
2.实用技巧
由于我们以后会经常在命令行下执行命令,每次打开一个新的命令行窗口默认的当前目录都是C:\Documents and Settings\$UserName,这样在执行命令之前都要切换目录,很麻烦,所以我们先来解决这个问题。在“开始”-“运行”中输入“regedit”,打开注册表。找到\HKEY_CLASSES_ROOT\Folder\shell,如果没有shell,可以在Folder下新建一个名为shell的键,在shell下新建一个名为“命令行(Command Windows)”的键,在这个键之下再建一个新的名为“Command”的键,设置默认值为“cmd /K cd /d %L”。
完成后的效果如下:
这样当我们选中一个目录,在右键上下文菜单里面就多了一个“命令行(Command Windows)”的选项,单击这个选项就可以打开一个命令行窗口并且快速切换到当前选中的目录。
3.安装Subversion
1) 准备工作
1. Apache服务器程序。到http://www.apache.org/上下载apache http server,我的是(apache_2.2.13-win32-x86-no_ssl.msi)。
2. SVN服务器端程序。到http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91上下载Subversion当前1.1.3版本的二进制安装文件,一般tigris.org并不提供二进制包,这些二进制包是有一些志愿者维护的,所以可能不是当前最新的版本。如果你想尝鲜使用Subversion的最新版,请下载源码自己编译。
3.TortoiseSVN,客户端程序。TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们选择Official version for Win2k/XP or higher的版本,然后在sourceforge的下载页面选择目前的最高稳定版本的安装文件TortoiseSVN-1.2.5.4719-svn-1.2.3.msi。(注意:TortoiseSVN有一个特殊对VS.Net运行时一个BUG修正的版本,在下载页面有选择:Special version for Win2k/XP or higher: (We provide NO support for this!) uses _svn folders instead of .svn to work around the VS.NET bug with web projects. If you don't use web projects then please use the official version. )
4. TortoiseSVN的中文语言包,注意这个需要下和客户端程序版本相同的。可以在Download页面内的Language Packs选择下载。
5. AnkhSVN,可选安装VS.Net的SVN插件。有0.5和0.6版本选择,0.6版支持VS2005 ,下载页面。
2) 开始安装
1. 先安装Apache服务器。
运行下载好的“apache_2.2.13-win32-x86-no_ssl.msi”,出现如下界面:
出现Apache HTTP Server 2.2.13的安装向导界面,点“Next”继续,
确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续,
将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续
设置系统信息,在Network Domain下填入您的域名(比如:lk.com),在Server Name下填入您的服务器名称(比如:http://www.lk.com/,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:lk@sina.com),
选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续
现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,选择“This feature, and all subfeatures, will be installed on local hard drive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选“Change...”,手动指定安装目录。
我这里选择安装在“D:\”,各位自行选取了,一般建议不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件也清除了。选“OK”继续。
选“Next”继续,直到出现下面的画面。
安装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,按“Finish”结束Apache的软件安装
安装完成之后到安装目录下找到conf目录下的httpd.config文件,搜索Listen,并将Listen后面的80改为9000(或者你希望的端口),
测试
然后重新启动Apache服务器,这时可以用http://localhost:9000/ 来测试是否安装正确。
2.运行下载好的“Setup-Subversion-1.5.6.msi”,一路下一步就行
使用Windwos资源管理器,来到Subversion的安装目录(通常是e:\program files
\Subversion),找到文件/httpd/mod_dav_svn.so和mod_authz_svn.so,复制这些文件到
Apache的模块目录(通常是E:\Program Files\Apache Software Foundation\Apache2.2\modules )。
从 Subversion 安装目录将 /bin/libdb*.dll 和 /bin/intl3_svn.dll 复制到 Apache 的bin 目录
(通常是E:\Program Files\Apache Software Foundation\Apache2.2\bin)。
3.运行下载好的“TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi”和“LanguagePack_1.6.5.16974-win32-zh_CN.msi”,一路下一步就行
安装TortoiseSVN时按照提示安装就好了,安装完成后会提示重启。
再修改httpd.conf,并做如下修改:
找到Apache安装目录下的conf目录,用文本编辑器打开httpd.conf,找到一下两行:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将每行前面的注释符“#”去掉。再在所有LoadModule语句的最后添加一下几行:
#SVN
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
其实在成功安装SVN之后,Apache服务器已经和SVN初步集成。如图:
注意下面的状态栏已经是Apache/2.2.13 SVN1.5.6 DAV/2
测试:
1.建版本库,我在F盘下创建一个文件夹:E:\SubversionFiles 作为所有版本库的根目录
2.在E:\SubversionFiles建立一个版本库test1,
运行命令: svnadmin create E:\SubversionFiles\test1
创建成功后目录结构为
3.接下来我们必须告诉Apache我们的资源库所在的路径,可以通过Location指令来完成这个设置。因为不希望为每个单独的项目都进行单独的设置,所以我们把所有项目都存放在统一的资源库目录,那么可以使用SVNParentPath指令来指定存放所有项目的路径。在httpd.conf文件最后添加下面配置:
#SVN
<Location /svn>
DAV svn
SVNParentPath E:\SubversionFiles
</Location>
这样我们就可以通过http://localhost:9000/svn/test1 来访问
4.加入用户身份验证:
在命令行窗口中转到Apache所在的目录,执行下列命令
说明:创建用户liuke
输入:htpasswd –c e:\SubversionFiles\svn_auth_passwd liuke
说明:使用-c参数来创建一个passwd文件
输出:
E:\Program Files\Apache Software Foundation\Apache2.2\bin>htpasswd -c e:\SubverionFiles\svn_auth_passwd liuke
Automatically using MD5 format.
New password: *****
Re-type new password: *****
Adding password for user liuke
再创建用户的时候就不用-c参数,而是用-m参数,因为文件svn_auth_passwd 已经创建。
(第一次用-c创建passwd文件;以后就用-m命令来添加用户了;更改用户的密码也用此命令);
(命令 htpasswd –D passwd svntest为删除用户(此处命令用大写的D);
接下来我们必须告诉Apache服务器如何使用这个passwd文件,打开httpd.conf找到刚才我们添加的Location配置的位置,修改如下:
#SVN
<Location /svn/>
DAV svn
SVNParentPath "E:/SubversionFiles"
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile "e:/SubversionFiles/svn_auth_passwd"
AuthzSVNAccessFile "e:/SubversionFiles/svn_auth_accessfile"
# only authenticated users may access the repository
Require valid-user
</Location>
svn_auth_accessfile
*********************
[groups]
admin = liuke
developers = user
#to allow everyone read access
#allow all admin complete access
[/]
@admin=rw
@developers=r
[/Tools]
*= rw
*********************
认证
如果要连接的版本库需要口令,一个认证对话框就会显示出来。
图 5.5. 认证对话框
认证
![认证对话框](http://svndoc.iusesvn.com/tsvn/1.4/images/Authenticate.png)
输入你的用户名和口令。那个选择框能让TortoiseSVN在Subversion的缺省路径下$APPDATA\Subversion\auth
的三个子目录里保存认证信息:
-
svn.simple
文件里包含了基本认证方式所需要的认证信息(用户名/口令)。 -
svn.ssl.server
文件里包含了SSL服务器证书。 -
svn.username
文件里包含了用户名认证的认证信息(不需要提供密码)。
每个文件对应一个要连接的服务器。文件是纯文本格式,因此可以用文本编辑器查看每个文件是应用于哪个服务器的。如果希望Subversion和TortoiseSVN忘记某个服务器的凭证信息,只需删除这个服务器的对应文件即可。默认路径为"C:\Documents and Settings\Administrator\Application Data\Subversion\auth"
重新启动Apache HTTP服务器,使用浏览器打开 http://localhost:9000/svn/test1 你将会看到要求登录的对话框,输入你刚设置的用户名和口令即可。
这样Apache和SVN的集成就基本告成了
如何取消一个本地svn目录与svn的联系
第一种方法:
直接、逐级地删除目标目录中的隐藏属性的.svn目录
第二种方法:
如果用的是TortoiseSVN客户端,则先在另外一处建立一个新目录A,右键点住svn目录并拖动到A上松手,在弹出的菜单中选择“SVN将版本控制的条目复制到目标位置”
第三种方法:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN]
@="删除该目录下面.svn文件"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command]
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \""
把上面这段文字保存问一个Done.reg文件
然后执行,导入到注册表
就会在你右键一个文件夹的时候多出来一个菜单"删除该目录下面.svn文件"
执行该命令即可