一、搭建SVN之前先做好准备工作
1、获取 Subversion
到官方网站(http://subversion.apache.org/packages.html)下载最新的服务器安装程序。目前最新的是1.8版本。
2、获取 TortoiseSVN 客户端程序
从官方网站http://sourceforge.net/projects/tortoisesvn/?source=typ_redirect 获取最新的 TortoiseSVN 。TortoiseSVN 是一个客户端程序,用来与 subversion服务器端通讯。Subversion 自带一个客户端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。
下载完成后会得到如下2个东西,subversion-1.8.11.tar.bz2解压后就可以得到Setup-Subversion-1.8.10.msi,按照提示安装即可(参考)
二、建立版本库(Repository)
1.首先在G:盘下 新建文件夹 svndemo
说明:必须手动建立,而不能使用svnadmin
2.在svndemo下新建以为文件夹:FCP
说明: 文件夹的名称 最好与项目名称对应。
3.点击FCP文件夹 右键 选择 TortoiseSVN,操作如下:
4.选择"Create repository here",会弹出如下界面:
说明:trunk,branches, tags 当然也可以手动创建
5.点击操作② “Start Repobrowser”,即可浏览版本库FCP的目录结构,如下:
三、启动SVN服务器
此时 subversion 服务还没有开始,只是通过TortoiseSVN建立了版本库(当然也可以通过命令行命令来建立版本库)。在命令窗口输入:
svnserve -d -r G:\svndemo
svnserve 将会在端口 3690 等待请求,-d选项告诉 svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止。
-r 选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL的时间。
为了验证svnserve正常工作,使用ortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入:
svn://localhost/FCP
区别:svnserve -d -r G:\svndemo 与 svnserve -d -r G:\svndemo\FCP 这两种方式启动SVN服务器的区别
① svnserve -d -r G:\svndemo 启动svn服务器,设置G:\svndemo 为svn服务器的根目录
使用ortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入:svn://localhost/FCP.
② svnserve -d -r G:\svndemo\FCP 启动svn服务器, 设置G:\svndemo\FCP 为svn服务器的根目录
使用ortoiseSVN -> Repo-browser 来查看版本库。在弹出的 URL 对话框中输入:svn://localhost
分析:一个svn服务器上针对不同项目一般会有多个版本库,使用①可以在不同的版本库之间切换,而使用②就只能使用一个版本库了,因为②是把某一个版本库作为根目录的
四、配置用户和权限
①用文本编辑器打开G:\svndemo\FCP\conf目录,修改svnserve.conf:
将:
# password-db = passwd
改为:
password-db = passwd
即去掉前面的 # 注释符,注意前面不能有空格。
②然后修改同目录的passwd文件,增加一个帐号:
将:
[users]
# harry = harryssecret
# sally = sallyssecret
增加帐号:
[users]
#harry = harryssecret
#sally = sallyssecret
test = test1
注意前面不能有空格。
五、初始化导入
下面就是将我们的Java Web项目FCP导入到这个版本库,以后就由版本库管理我们的数据。我们的任何改动都回被版本库记录下来,甚至我们自己丢失、改错数据时版本库也能帮我们找回数据。
比如,我在 G:\workspace 下有个 FCP文件夹,是正在开发的Java Web项目。在此文件夹上“右键 -> TortoiseSVN -> Import...” ,在弹出对话框的“URL of repository”输入“svn://localhost/FCP/trunk”。在“Import message”输入“导入到trunk”作为注释。
点 OK 后要求输入帐号。我们在用户名和密码处都输入 test 。完成后 FCP 中的内容全部导入到了svn://localhost/FCP/trunk 。
我们看到在 G:\svndemo\FCP版本库文件夹没有任何变化,连个 FCP 文件夹都没有建立,唯一的变化就是G:\svndemo\FCP容量变大了。实际上我们FCP项目中的内容已经导入G:\svndemo\FCP版本库了,FCP 文件夹可以删除了。
需要注意的是,这一步操作可以完全在另一台安装了 TortoiseSVN 的客户机上进行。例如运行svnserve的主机的IP是192.168.121.22,则URL部分输入的内容就是“svn://192.168.121.22” 。
参考:http://laodaobazi.iteye.com/blog/905058
参考:http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2408089.html