原文:快速学会搭建SVN服务器
SVN是一个版本控制工具,常用于我们软件开发项目中,用来管理我们团队共同使用的代码,文档等历史版本的管理,保持代码的更新,避免混乱。
需要工具:
svn安装程序:免费下载
apache的http服务器,免费下载
svn的eclipse插件,免费下载
TortoiseSVN图形化工具64位和32位版本,免费下载
安装svn及基本DOS操作:
首先安装svn是非常的简单,就像我们安装其他的windows软件是一样的,安装完成后安装程序自动将我们svn安装目录下的bin目录加载在了我们的环境变量里。所以我们可以直接在我们的cmd窗口内运行我们的svn命令。我们先来学习第一个命令,创建一个svn仓库,我们先在E盘下创建一个目录
E:\\svn\db 这个目录就是我们svn的仓库,我们日后所以上传都svn上的资源其实都是存在这个目录下的,只是格式已经被svn给加密我们无法直接识别,就像是用数据库管理我们数据一样。我们在cmd里输入:
svnadmin create E:\\svn\db
这个就是将我们刚才的目录指定为存储仓库。然后我们运行我们的svn服务在cmd内输入:
svnserve –d –r E:\\svn\db
该命令含义为让 我们的SVN 将此目录作为仓库,并侦听客户端的请求。其中-d 的作用为后台模式,而-r
的作用为指定服务器的仓库路径。现在我们的svn服务器就已经启动成功了,是不是很简单,然后我们开始向我们的svn上上传我们的资源。我们再次打开一个cmd窗口,刚才的cmd窗口不能关闭,在cmd内跳转到我们的资源文件夹内执行:
svn import svn://localhost
这个时候会出现一个错误,命令执行失败,因为我们需要指定打开svn日志信息的工具,这里我们在环境变量里增加一个增加一个键名为SVN_EDITOR
键值为notepad的记录。我们再次运行刚才的命令,这时我们的日志文件自动用记事本打开,我们直接关掉输入c继续操作。再次出现认证失败的信息,这次其实是我们已经这说明我们已经连接到了 SVN 服务器,但是默认是svn服务器是不允许匿名访问的,我们打开我们的E:\svn\db目录改变一下
SVN 的认证权限。用文本编辑器打开 svnserve.conf 文件找到第 12 行:anon-access = read,这表示匿名用户的访问权限是读,并且大家注意到,该行前面有一个警号:#。这表示该行是被注释掉的。我们将注释去掉,并且加上一行anon-access = write。我们打开一个cmd开启svn服务再开启一个cmd执行上面的上传操作,是不是操作成了,我们所在文件夹目录下的文件是不是都上传了上去。
这样大家是不是觉得svn上的管理太乱了,没关系svn是支持虚拟目录的
svn mkdir svn://localhost/xunimulu
这样便可以帮助我们在svn上创建一个虚拟的文件夹。我们如果想将svn上的文件下载下来如何?在svn的操作中这个叫做检出。checkout命令(检出):将命令行当前目录转到该目录,输入如下命令:
svn checkout svn://localhost/xunimulu
这样就可以将这个文件夹下的资源下载到们的当前目录,如果我们修改文件后,需要与服务器上的文件进行同步,我们需要执行
svn commit test2.txt
如果执行该行出现错误,则我们清除锁定,输入:svn
cleanup
SubVersion的密码验证
匿名访问我们的svn服务器是不是太危险了,我们接下来就是使用svn自带的配置文件来对我们的svn进行权限控制,我们用文本编辑器来打开刚才的
svnserve.conf配置 文件将 password-db = passwd 之前的#号删掉,在用文本编辑器打开passwd 文件加入账号密码形式为username=password
注意:在一次登录后,SVN 会将我们的登录信息保存起来存放在硬盘上的文件中,其存放位置为: C:\Documents and Settings\[你的登录系统用户名] \Application Data\Subversion,如果想要删除该信息,只需要将该目录中的 auth 文件夹删除即可。
图形化工具安装
刚才的dos操作是不是很不方便,我们的下载软件中包括一个图形化工具,非常简单实用,大家可以安装上用一下,安装非常简单。安装完成后我们的右键菜单中多出了很多svn的操作。还是以上的功能,只是变成了图形化界面操作,大家可以自己体验一下,在此不再赘余。
整合apache服务器
刚才大家肯定也注意到我们的svn服务器只能一直依托一个cmd窗口,这样是不是很不方便,接下来我们让我们的svn来整合apache的httpd服务器,首先安装apache
的http服务器。它的默认端口号是80如果有端口号冲突,我们的服务器是无法正常启动的,只需要修改配置文件更改端口号重启即可。安装完成后在浏览器输入:http://localhost如果跳转到apache的网页则说明安装成功。然后我们开始进行整合,首先到svn安装目录的bin目录下找到
mod_authz_svn.so 与 mod_dav_svn.so 两个文件,拷贝到 Apache 的安装目录下的modules 子目录中。然后修改apache的配置文件,打开apache安装目录下的,conf 目录,用文本编辑器打开 httpd.conf 文件(这个文件是 Apache 的配置文件,非常重要)找到第 145 行和 146 行。将前面的#号去掉,不能有空格,然后再增加如下两行内容:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
表示将我们之前拷贝的模块导入到 Apache 中,转到该文件的最后,增加如下内容:
<Location /svn>
DAV svn
SVNParentPath e:\\svn\db #svn仓库主目录
</Location>
重新启动 Apache,在浏览器中输入如下地址:http://localhost/svn我们就已经将svn跟apache服务整合成功,这样我们只需要启动apache服务器就相当于启动了我们的svn服务器。
整合apache密码设置
svn的密码认证也是非常的弱,在这里我们也与apache整合,我们将刚才的apache配置文件最后加的内容修改为一下内容:
<Location /svn>
DAV svn
SVNParentPath e:\\svn\db #svn仓库主目录
AuthType Basic
AuthName "Subversion test"
AuthUserFileE:/passwd/passwords
Require valid-user
</Location>
这些信息的内容分别是:
AuthType 表示验证类型,这里我们采用 BASIC 即基本方式,也是最常用的验证方式。AuthName
表示出现登录对话框时,窗口的标题名。AuthUserFile 表示用户登录信息的存放文件,这里我们将该文件保存为 E:/passwd/passwords,目前该文件还不存在,不过不要着急,我们稍后就会创建该文件。#保存用户名和密码,这个文件需要用Apache的htpasswd工具创建。Require
valid-user 表示只有认证的用户才能访问,否则匿名用户也可以访问。首先创建E:/passwd文件夹
打开cmd命令跳转到apache的安装目录下的bin目录下执行htpasswd –c E:/passwd/passwords
hello (hello是用户名)接下来的提示要求输入 hello 用户的密码,其中密码默认使用 MD5 方式加密。
现在我们再创建一个用户 google,密码也为 world。方式同前。在命令行输入:htpasswd
E:\passwd\passwords google因为该用户信息文件之前已经创建好,所以这里不必再使用-c 参数
在浏览器地址栏输入http://localhost/svn则需要密码验证
SubVersion 整合 Eclipse
我们只需要将我们的插件包放到eclipse的dorpin目录下重启eclipse即可。
友情提示:转载请注明出处【作者:idlear
博客:http://blog.csdn.net/idlear】