2011年9月17日星期六

本地SVN(Subversion)版本管理服务器搭建指南

为什么需要在本地安装SVN?对于帕兰来说,本地SVN可以作为一个开发人员的备份工具,既备份了文件,又备份了修改。尽管有很多优秀的代码托管服务器如Google Code, github和SourceForge,但这些托管比较适合免费的开源项目。

So, 如果你开发的东东都是免费开源的,那我建议你还是使用上面提到的这些代码托管商作为Subversion服务器,他们的电脑比你自己的电脑更值得信任。如果出于和我相同的目的或其它不为人知的原因需要在本地安装SVN版本管理服务器,那就开始吧。

注意: 本文基于Windows XP。

一. 安装使用VisualSVN Server

VisualSVN Server是一个集成的免费SVN服务端工具。它包含了Subversion和Apache,将Subversion封装为Windows服务,安装时可以选择协议端口之类的,安装后可以在图形界面上轻松浏览和管理版本库。其安装简单,使用方便。

安装过程如下:

1. 下载VisualSVN Server的最新版本。本文使用的是VisualSVN-Server-2.1.9.msi。

2. 点击安装包,一路NEXT。除了到达下面这个界面时,可能需要做一些修改。

visualsvn server setup 本地SVN(Subversion)版本管理服务器搭建指南

 

Location是VisualSVN Server的安装路径, Repositories是版本库路径。Authentication这里选择身份认证方式( Subversion或Windows)。这些都保持默认即可。

重点说明一下服务器端口(Server Port)这里,如果使用https,备选的端口有443和8443,如果使用http, 备选的端口有80, 8080和81。本地嘛,通常选择80就好了。

但不管你选哪个端口,点Next的时候可能会出现端口被占用的提示。解决方法:

  • 换一个端口试试。
  • 或者看看是哪个服务占用了80端口,将其停止。你可以使用命令行netstat -a -no,然后再tasklist来找出是哪个服务占用了80端口。

在本文的演示,我们使用8080端口。

3. 安装成功后,启动VisualSVN Server管理界面。你就可以开始创建版本库,创建用户组,创建用户,修改用户访问权限,新建项目或文件夹,在浏览器中浏览版本库等等。

visualsvn server manager 本地SVN(Subversion)版本管理服务器搭建指南

由于只是本地安装,我们就不用管太多用户权限的问题。新建一个版本库,然后新建一个测试项目,右键点击Browser的时候会提示我们新建一个用户,输入你的用户名和密码即可。

visualsvn server manager 2 本地SVN(Subversion)版本管理服务器搭建指南

visualsvn server manager 3 本地SVN(Subversion)版本管理服务器搭建指南

以后你就可以在VisualSVN Server或浏览器里面管理你的SVN。地址形如http://PC-xxx:8080/svn/。其它的PC-xxx可以替换成localhost,这样直接输入比较方便。

visualsvn server browser 本地SVN(Subversion)版本管理服务器搭建指南

至此,VisualSVN Server的安装和简单使用说明就到此结束,具体的其它操作大家自己多研究。

二,安装XAMPP和Subversion

既然已经有如此方便的VisualSVN Server,为什么还要用原来的Subversion?

在我的电脑上,很早就已经安装了XAMPP,它已经包含了Apache,且它使用的是80端口。这样,如果使用VisualSVN Server, 就造成一个冲突,XAMPP和VisualSVN Server两者中,其中一个程序就不能使用80端口。

不能使用就不能使用呗,可对于我来说是有影响的,因为当是80端口的时候,可以使用http://locahost/xxx的形式来访问。否则其中之一就要输入http://locahost:端口/xxx来访问。怎能忍受!!!

找了半天也没找到解决的方法,一位网友弄了个绿化版的VisualSVN Server来摆脱两个Apache的尴尬。但是版本过老,对于我等版本控是受不了的。于是,弃之VisualSVN Server,还是使用原来的Subversion。

安装开始:

1. 这里针对的是已经装了Apache或XAMPP的情况。如果你想安装XAMPP,可以看帕兰之前发布的XAMPP和本地WordPress安装

2. 下载Subversion的二进制包Win32Svn。本文使用版本为1.6.17,XAMPP版本为1.7.4。

3. 下载成功后,点击Setup-Subversion-1.6.17.msi,一路NEXT。

4. 在E盘新建一个目录文件夹svn,再在里面新建一个文件夹Repositories。

4. 安装成功后,找开Subversion/bin,把里面的mod_authz_svn.so和mod_dav_svn.so这两个文件复制粘贴到xampp/apache/modules里面。

5. 打开xampp/apache/conf/httpd.conf文件, 找到LoadModule dav_module modules/mod_dav.so这行,把前面的注释#去掉。然后在这行后面添加下面两行:

LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dav_svn_module modules/mod_dav_svn.so

再把下面的代码添加到httpd.conf的最底部:

<Location /svn/>
DAV svn

SVNListParentPath on
SVNParentPath "E:/svn/Repositories/"
#  AuthName "Subversion Repositories"
#  AuthType Basic
#  AuthBasicProvider file
#  AuthUserFile "E:/svn/Repositories/htpasswd"
#  AuthzSVNAccessFile "E:/svn/Repositories/authz"

#  require valid-user

</Location>

SVNParentPath就是我们在第4步新建的版本库路径,前面带#号的是不需要的,因为是本地个人管理,我个人不需要设置用户名和密码访问。如果你需要,那要在SVNParenPath里面创建对应的文件,具体如何弄自己研究吧,代码格式仅供参考之。

6. 以上操作完成后,你拥有的只是一个版本库中心的父级路径,也就是http://localhost/svn将罗列你所有的版本库。而你还需要为不同的项目或项目组创建他们各自的版本库。

如果你想使用svn命令行来进行操作,那到此就可以结束了。具体的使用可以看Subversion权威指南

我不怎么喜欢命令行,尽管它可以让我感觉自己很酷。所以,你需要下面这个工具 – TortoiseSVN。

三, 安装TortoiseSVN

TortoiseSVN是Subversion版本控制系统的一个免费开源客户端。简单的说,它将svn命令图形化,右键化。

1. 下载TortoiseSVN。本文使用的是1.6.16版本。

2. 点击安装,一路NEXT。

3. 安装成功后,你会发现你的右键多了一个TortoiseSVN。

4. 具体的使用请看官方的TortoiseSVN使用手册。我们这里仅接着上面的Subversion做一个示例:

  • 假设D盘里有一个WP插件项目paran-ecommerce
  • 在E:\svn\Repositories\目录里新建一个文件夹paran-ecommerce,右键点击该文件夹,执行 Tortoise->Create repository here。然后你就会看到E:\svn\Repositories\paran-ecommerce 里面多了conf, db, hooks, lock…等文件夹和文件,说明创建版本库存成功。
  • 然后去我D盘的paran-ecommerce,右键点击该文件夹,执行Tortoise->Import
  • 在弹出的对话框中,输入URL of repository: http://localhost/svn/paran-ecommerce/trunk/。这里的http://localhost/svn/就相当于E:\svn\Repositories\。
  • 然后把D盘里面的paran-ecommerce删了,Shift-delete,完全删了。我们好测试是否成功了。
  • 在任何空白文件夹里面,右键点击SVN Checkout,版本库URL输出http://localhost/svn/paran-ecommerce/trunk/,将得到paran-ecommerce的项目源文件

注:  上面的子目录trunk,并不是必须的,但它是高度推荐的版本库结构,trunk/tags/branch。

再注: 事实上,在本地,TortoiseSVN可以创建版本库,还内置版本浏览器,仅安装TortoiseSVN也可以实现本地备份的目的了,完全不需要安装Subversion。之于我,装Subversion就是让版本库URL漂亮点,检入、检出和浏览的时候方便些:)

来源于 本地SVN(Subversion)版本管理服务器搭建指南 | 帕兰映像

没有评论:

发表评论