SVN (Subversion 、TortoiseSVN)设定大全
 

2009-06-05 来源:网络

 

最近开始要RUN TIC100的案子了,看着正伟努力的建置数据库,我也燃烧了!马上把SVN也提早架设完成。在这之间我查了一大堆网络数据,但是仍然没有办法只有一个站就满足我所有的要求,因此也google了好几次,才把所有要用的数据找齐。那么接下来跟大家介绍一连串的SVN安装须知和常见问题,当然很多是从别的网站看来写来的,但是我算是整合也都附上了参考连结,如果有冒犯到原作者

SVN (Subversion) 是一套非常好用的 档案 版本控制(Revision control) 系统

除了可以很方便的追踪,交换,合并,比对档案外,更能保护档案不会受到一些意外而让心血的结晶损毁,也可以让团队合作时,更加有效率。

以下简单介绍 Subversion (Server端) 及TortoiseSVN (Client端)

首先Subversion下载点、TortoiseSVN下载点和TortoiseSVN中文包(在Client端软件的下载网页往下一点)先提供给大家边看边下载,版本当然建议选择新版与同版本。

下载好之后就可以先安装简单的Client端,这里有教学影片,两分钟内搞定!

再来如果你只需要使用SVN来控管你的Code且已经有人帮你架设好Server端,而你只需要知道如何更新你的Code,这个使用会简单得多,SVN Client端会把SVN的功能放在右键选单(别忘了从设定把语系更改成繁体中文)。

那么如何取得档案呢?只需要在你选择的数据夹,画面中窗口我是在C:\Inetpub\wwwroot的demo数据夹上按右键,上面有个SVN取出(英文的忘了@_@,不过快速键都是(K)),然后到这个画面。

档案库URL就填上你的同伴架设的档案库网址,或是想要自己单机作版本控制的话可以直接使用file:///C:/SERVER INSTALL ROOT/svn/code的单机路径亦可。

取出目录就是你选定的数据夹

按下确认既可!

更新档案完成之后你的数据夹会有个绿色的勾勾来代表此数据夹的数据是与Server端相同,当你档案修改过后他会出现像是禁止进入单行道的红色标志,那画面上看到的功能列上有个重新定位,可以修改你的档案来源,或是使用锁定把某些档案锁住维持成这次版本,当然每次的动作都有批注字段可以让你填写备注。

详细的版本异动的测试可以参考juee.com的连结。

那么在会使用Client端软件之后,是不是打算自己当起老大(或是苦主),来把主要Code维护的工作揽在身上呢?呵呵,当然有时候架设Server的不一定就要维护,就像我啦,提供给大家平台,反而自己是Coding最逊的一个。XD

那么架设Subversion基本上是与Apache结合在一起的,所以在安装Subversion之前别忘了先安装Apache,对于Apache不熟的人...也别怕,Apache也可以做到简单安装,只需要下一步下一步就OK啰。

到 http://httpd.apache.org

下载 Apache HTTP Server 2.0 版以上 for Windows 的安装程序(下载安装版的喔,msi档),但安装之前请先检查你的计算机是否有安装 IIS,由于 Apache 预设使用 80 port,会跟 IIS 的网站冲突,你必须把 IIS 的 Web 站台关闭,再安装 Apache HTTP Server,或是安装好Apache再去把安装目录中\conf里面的httpd.conf做修改。修改部分:
用CTRL+F找80 再把80改成8080(建议)或是其它。(这一部分别怕麻烦,待会还会再看到这个档案XD)
安装完成以后,开启浏览器,浏览网址 http://127.0.0.1 (或http://127.0.0.1:8080) 看看有没有出现安装成功的网页。搞定Apache之后就把刚刚下载好的Subversion安装起来,整个OK之后,通常RUN不起来!(哈哈,我也是啦,还搞很久)

这时候你要先把Subversion/bin/目录下的 mod_dav_svn.so 和 mod_authz_svn.so libdb4X.dll、libeay32.dll、以及 ssleay32.dll 复制到 /modules/ 目录下。(这里会因为版本不同放的数据夹有所不同,且档名或有变化,像我的是libdb44.dll)

接着再到Apache 的 httpd.conf(在
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so

把前面的 '#' 字符删除,然后把下面几行文字加到这群 LoadModule 指令的后面:

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

以上动作完成之后就可以重新启动Apache

如果 Apache 仍然无法启动,请依下列步骤检查:

检查 Subversion 的路径是否有在系统的 %PATH% 环境变量里面。(控制台→系统→进阶→环境变量)
检查你加入 httpd.conf 里的项目是否正确,记住 mod_dav_svn.so 和 mod_authz_svn.so 必须在其它 mod_dav*.so 模块之后加载。(这个通常不会有问题,我是放在档案最后面,一定是在其它模块之后加载)

再来都好了之后就要设定你的SVN要放在哪个数据夹,并且对应到网络上的路径,设定语法是:

<Location/svn/repos_name>
DAV svn
SVNPath /absolute/path/to/repository
</Location>

其中 "/svn/repos_name" 就是客户端存取特定档案库的 URI(Uniform Resource Indentifier),SVNPath 后面指定的路径则是档案库的绝对路径,假设我们的档案库实际存放的路径是 d:/svn/MyProject,并且希望客户端使用 "http://myserver/svn/myprj" 的 URL 来存取档案库,那么要加入 httpd.conf 的内容就是:

<Location /svn/code>
DAV svn
SVNParentPath C:/Apache root/svn/code
</Location>

设定好路径之后只需要在数据夹上选择建立档案库即可,但是记得这个数据夹要是空的数据夹。

建立好之后数据夹内应该要有以下的档案存在。

这时候跑你的网页应该会有版本0的显示。(我的版本被我玩成1...我懒得再弄新的,就跟juee的网站借图啰XD)

再来就是把你要共享的数据夹选择汇入,并且在档案库URL那边填入你的URL或是磁盘位置即可,那他在任一个版本写入都会有纪录并且在版本上+1

我相信如果有看完这一整篇,你应该也把SVN完整的设定好了,那如果还有问题的话也可以再留言大家讨论!

最后在这边提一下,php5学习日记里面还有提到不同网域需要存取数据的时候就必须使用密码的方法,这可以阻隔奇怪的人来使用你的档案或是使你的档案造成损毁。这块我没有弄,我想别外流出去,应该是没人会想来搞我这个小咖洨XD

PS:我的整个环境设定:

操作系统:Windows XP Pro
Port 80:IIS 5.0
Port 8080:Apache 2.0.59
Subversion v1.4.3
TortoiseSVN 1.4.3.8645


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织