Discuz教程网

subversion/SVN的安装配置

[复制链接]
authicon php1314 发表于 2011-1-8 14:36:41 | 显示全部楼层 |阅读模式

长久以来,在开源世界中,CVS(Concurrent Versions System)一直都是版本控制的首选。但是现在用户有了另一个选择,就是Subversion。Subversion是下一代版本控制系统,能替代CVS,项目主页是http://subversion.tigris.org。  
    Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。  
    它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,比如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。。。
    假设你使用过CVS就能体会到上文所说的Subversion好处了,例如目录版本控制,目录的改名等。对于Subversion的原子提交,我想多说几句,大家可以想象,我们一般做一个修改,可能需要改动多个文件,尤其现在大家多对分层已经趋之若鹜了,除非你还在用着哪种什么东西都写在一起的语言。(例如PB?呵呵,感觉好像是这样的东西。)假设你的一次提交过程中,因为网路原因或者机器的硬件原因或者根本是你自己落下了一些文件没提交,在逻辑意义上这次提交是不完整的,Subversion的原子提交能不错的解决这个问题,个人认为这也是对于CVS最大的改进了,这有些类似数据库的事务。
    在正式安装配置Subversion之前我们先来作点准备工作,因为我们以后会经常在命令行下执行命令,每次打开一个新的命令行窗口默认的当前目录都是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)”的选项,单击这个选项就可以打开一个命令行窗口并且快速切换到当前选中的目录。
一、软件下载:
apache: http://www.apache.org/  (apache2.2对tortoiseSVN的支持有点问题,故安装apache2.0.x)
subversion: http://subversion.tigris.org/ser ... entList?folderID=91
tortoiseSVN: http://tortoisesvn.net/
二、软件安装
(1)安装apache2.0.x
1.域名的设置:
localhost
localhost
邮箱随便填
2.解决迅雷占用80端口的问题:
将其设为随机端口
(2)安装svn1.4.6+
apache2.0.x支持svn1.4.6
(3)安装tortoiseSVN 1.3.2+
三、subversion配置
Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。Apache Http Server是基于Apache Http Server的Subversion,这样做几个好处:
A.能使用WebDAV协议。
B.通过Apache以HTTP方式穿透防火墙,便于在互联网环境使用,能使用浏览器作为客户端工具浏览源码仓库。
C.可以很容易的支持到SSPI(Windows域认证)和LDAP(AD?),这些都是Apache本身就支持的。
D.能得到比较完善的Apache安全认证系统,例如SSL加密连接。
第一步,打开Apache安装目录下的httpd.conf文件
找到下面的语句:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将上面语句前面的#去掉(注:可能已经被注释掉了)
第二步,在这句后面追加,如下语句:
LoadModule dav_svn_module "{svn安装目录}/bin/mod_dav_svn.so"
LoadModule authz_svn_module "{svn安装目录}/bin/mod_authz_svn.so"
注:{svn安装目录}就是svn-win32-1.4.5.zip解压后你放的目录(注:可能SVN已经替你加上了)
第三步,在这个文件的最后,追加如下语句:
<Location /svn>
    DAV svn
    SVNParentPath d:/mysvnroot (这是svn父目录,创建的svn repository一定要在改目录下,且斜杠不能写反了!)
</Location>
第四步,创建仓库
根据apache的配置文件的设置建立目录:d:/mysvnroot,然后用svnadmin create d:/mysvnroot/test命令创建仓库,命令执行成功之后,会在d:/mysvnroot/test下面生成很多的文件和目录。(也可以新建一个文件夹,右击tortoiseSVN>create repository here...)
第五步,运行
重新启动Apache Server
在浏览器中输入网址:http://localhost/svn/test/
这时候,看到页面显示:
Revision 0: /
Powered by Subversion version 1.3.2 (r19776).
安装成功,接下来将进行权限设置。
第六步,svn使用apache的权限管理对档案库及目录进行读写管理
修改上面第三步的内容为:
<Location /svn>
    DAV svn
    #SVNListParentPath on
    SVNParentPath d:/mysvnroot
    ### apache auth begin
    # how to authenticate a user
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile d:/mysvnroot/apache_authz (保存用户名和密码,这个文件需要用Apache的htpasswd工具创建)
    Require valid-user
    ### apache auth end
    ### svn auth begin
    # our access control policy
    AuthzSVNAccessFile d:/mysvnroot/svn_authz  (保存用户访问的权限策略)
    # authentication if necessary
    #Satisfy Any
    ### svn auth end
</Location>
第七步,用htpasswd工具创建apache_authz 文件,建立保存用户名和密码的文件
htpasswd -cm  d:/mysvnroot/apache_authz  zx
-c 表示创建文件,-m表示对密码用md5加密
然后,会提示输入两次密码,以后再加用户就不需要用-c了,直接用-m即可。
htpasswd -m d:/mysvnroot/ apache_authz yh
然后,会提示输入两次密码
下面建立控制用户访问权限的文件svn_authz
在d:/mysvnroot中新建一个记事本文件,输入下面的内容:
[groups]
admin = zx
test-developers = yh
everyone = @test-developers
[test:/]  
@admin=rw                   //这表示,仓库test的根目录下的访问权限
@test-developers = r
[test:/test]             //test仓库下test目录的访问权限
@admin = rw
@test-developers = rw         // 假设在前面加上@符号,则表示这是个群组权限设置 r表示读权限 w表示写权限
第八步,配置完成,重新启动Apache server
在浏览器地址栏中再次输入:http://localhost/svn/test/
这次要输入密码才能进入。
第九步,将一个项目文件夹导入到svn中
右击要导入的文件夹,tortoiseSVN>import...
键入地址:http://localhost/svn/test/
假设设置了密码,则会要求输入用户名和密码
第十步,从svn中将项目checkout
任意右击 SVN checkout...
键入地址 http://localhost/svn/test/
选择目的地址即可
第十一步,解决冲突
当多个人同时提交一个文件的修改时,可能产生冲突。
冲突时,会生成三个临时文件,同时冲突的文件有感叹号标识。
三个文件分别是:.mine(我的文件) .r版本号-1(前一个版本) .r版本号(当前最新版本)
右击冲突文件; tortoiseSVN>Edit conflicts...
修改后再提交即可。




上一篇:Subversion快速入门教程【转载】
下一篇:FastCGI(php-cgi)工作原理
authicon №小乖 发表于 2011-5-9 04:59:43 | 显示全部楼层
好耶!功能强大啊
authicon 月之海洋 发表于 2011-5-9 11:59:55 | 显示全部楼层
不错,我喜欢
authicon lightning123 发表于 2011-5-14 17:59:39 | 显示全部楼层
楼主真强大
authicon 陶衣小可 发表于 2011-5-17 13:59:58 | 显示全部楼层
好耶!功能强大啊
authicon NicoleOnly 发表于 2011-5-18 11:59:35 | 显示全部楼层
谢谢,学习了
authicon YNKAZUKI 发表于 2011-5-21 10:53:15 | 显示全部楼层
不错不错,我喜欢
authicon nancybingling 发表于 2011-5-21 10:53:20 | 显示全部楼层
真的有意思!
authicon mjz 发表于 2011-5-27 08:00:07 | 显示全部楼层
顶你一下,好贴要顶!
authicon 皆无 发表于 2011-6-16 11:18:49 | 显示全部楼层
这个贴不错!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2025-5-2 20:16

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表