subversion学习笔记

本文详细介绍Subversion的安装及配置过程,包括独立版本库的搭建、权限设置、与Apache集成配置等内容,适用于希望深入了解Subversion部署的企业和个人。
Subversion是一款不错的版本控制工具,公司现在用的vss,决心想换成subversion.所以研究了几天,从网上google了一些资料,但不能适应现有版本,所以自己根据现有的文章重新组合:
针对版本:CollabNetSubversion-server-1.5.6-2.win32.exe
客户端:TortoiseSVN-1.6.1.16129-win32-svn-1.6.1.msi
该版本其实已经包括apache2,一些注释已经去掉了。几个so文件已经自己拷进了。


Subversion到目前的安装已经非常简单了。到Subversion网站下载Windows下的安装文件,简单的步骤就可以完成安装,而且安装程序已经自动注册Path,直接在命令行模式就可以使用了。

一、 首先初始化Repository,输入命令:
svnadmin create D:\ svn_rep \

二、然后,把现有的项目的目录结构以及文件导入到Repository中,有三种方式:
1、 svn import D:\Projects\Project1 file:///D:/TestRepository/Project1 -m “初始化“
2、 该步骤可以通过客户端用浏览器访问: svn://localhost/svn_rep,然后右键addfiles进行导入,需要在进行权限设置之后
3、 也可运行客户端TortoiseSVN,然后在被添加的项目文件夹点右键import进行导入, 需要在进行权限设置之后
三、权限设置

1. 打开D:\ svn_rep \conf下的svnserve.conf文件,找到以下几句:
# anon-access = read
# auth-access = write
# password-db = passwd
# authz-db = authz

去掉每行前的#号。第一行表示匿包权限为只读,第二行表示授权以后访问权限为可写,第三行表示记录用户名密码信息的文件是passwd文件,也可以是passwd.db等文件,一定要跟文件名保持一致,第四行表示记录用户授权信息的文件是authz文件,其他跟passwd类似。
2. 打开passwd文件,将
[users]
# harry = harryssecret
# sally = sallyssecret

将每行前面的#号去掉,这是设置用户,每行一个,存储格式为“用户名=密码”,如我们加入一个新用户:
[users]
harry = harryssecret
sally = sallyssecret
admin=1234567
3. 打开authz文件,看到如下代码:
[groups]
# harry_and_sally = harry,sally

# [/foo/bar]
# harry = rw
# * =

# [repository:/baz/fuz]
# @harry_and_sally = rw
# * = r

同样去掉#号。[groups]表示组,一个组可以有多个成员,方便批量授权,比如我们将该文件修改为:
[groups]
harry_and_sally = harry,sally
managers = admin,harry

[/foo/bar]
harry = rw
* =

[/baz/fuz]
@managers = rw
* = r

从上面的配置可看到,有两个组:harry_and_sally 和managers,[/foo/bar]是项目在资源库的路径,harry=rw表示harry用户对该路径下的文件有读写权限,managers组的成员对/baz/fuz有读写权限。 如果是[/]代表根目录,以上两个文件夹可自行建立。

四、用启动服务
svnserve -d -r D:\ svn_rep \


客户端访问:
浏览器: svn://localhost/svn_rep
客户端Checkout
svn checkout svn://主机名/Project1 (即获取Project1的项目)


以下是与apache结合

[b]Apache和Subversion集成安装与配置 [/b]

因为工作需要,要架设一个Subversion和Apache一起工作的源码管理器.以便协同工作.于是网上找了一些资料,在找资料的过程中,也走了一些弯路,于是自己整理了一下安装的过程和一些注意的事项,希望能对大家有些帮助.
我这里用的IDE是netbeans6.0,其实用什么IDE都无所谓,只是netbeans一直是我喜欢的IDE,所以顺便向大家推荐一下.呵呵.
好了,言归正传吧,要准备的东西如下:
1,apache_2.0.63-win32-x86-no_ssl.msi
下载:http://apache.mirror.phpchina.com/httpd/binaries/win32/apache_2.0.63-win32-x86-no_ssl.msi
2,svn-1.4.5-setup.exe
下载地址:http://subversion.tigris.org/files/documents/15/39559/svn-1.4.5-setup.exe
当然,你也可以选择安装TortoiseSVN.但是我没有装,因为我的源码管理都是用netbeans完成的.

好了,准备的两个软件都下载下来以后,就可以开始安装了.
首先安装apache,一般来说直接点下一步就可以了,在设置domain以及host的时候,设置为localhost就可以了,Email你可以填你自己的Email,也可以随便填一个.安装apache要注意的是,你的电脑上80端口不能被占用,否则你的http服务是启动不起来的,我就遇到过这事,因为我用了skype,它在本机上打开了80和443端口来监听,搞得我一开始装不好,总是启动不起来,后来才发现是skype占用了80端口,于是把skype的设置改了以后,重装apache才成功.装好apache以后,这个时候,它已经在运行了,你可以在浏览器的地址栏输入http://localhost看看,是否安装成功,如果安装成功的话,这个时候浏览器里面应该是可以看到一个页面的.
然后,再安装svn-1.4.5-setup.exe,也很简单,一步一步点下步就可以了,在安装的过程中,它会默认选中一些选项,其中就有一个是是否对apache的HTTP服务器提供支持的选项,这个默认是勾上的,不要去反选它,其它的你可以反选掉.然后svn就宣布安装成功了.你可以到CMD下面去试一下svn这个命令,如果有输出,则说明安装成功了,如果提示svn 不是内部或外部命令,也不是可运行的程序或批处理文件。那就说明没有装好.或者没有把这个命令加入到path中,所以最好的办法是到svn的安装目录下的bin里面去看一下.
两者都装好了以后,就开始配置,当然,配置也是最重要的.
首先要建立一个数据仓库,我们假设建在E盘,数据仓库最好不要建在C盘,因为C盘重装系统以后就格了.我们先在E盘下面建立一个目录叫svnroot,然后在svnroot下面再建立一个我们专门放我们工程的目录,比如叫MyProject.于是我们在E盘下面就有了这个一个文件夹:E:\svnroot\MyProject,然后我们用svnadmin的命令,使这个文件夹变成我们的数据仓库,命令如下:
svnadmin create E:\svnroot\MyProject
如果运行成功的话,什么也没有输出,这个时候,我们再来到MyProject文件夹下面,我们会发现多了几个文件夹和文件,我们打开conf文件夹,然后再打开svnserve.conf文件,找到如下行# password-db = passwd,然后把它前面的#去掉,表示MyProject是需要密码验证的.但是我们密码设在哪里呢,这个时候我们再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要启动的人员的用户和密码,比如
[users]
hadeslee=hadeslee1234
tom=123456
这个的话,我们就启动了两个用户,一个叫hadeslee,密码是hadeslee1234,一个叫tom,密码是123456.然后我们保存passwd文件.然后,我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面内容如下:
[MyProject:/]---该文件其实是apatche的权限配置文件,可以给用户赋权限,也可以组赋权限
hadeslee = rw
[MyProject:/module1]
tom=rw
hadeslee=rw

----以下是以组赋予权限
[groups]
admin = andyaqu
guest = tom
[rep2:/]
@admin = rw
* =
[rep2:/showcase]
@guest = rw\
* =
这表示,MyProject下面的所有子目录hadeslee都是有权限读写的,但是tom只有权限读写此项目下面的module1目录,这个各自的访问权限就分的更细致了.有关于MyProject文件夹下面的设置,我们就告一段落了,我们现在开始设置apache,使它能和subvertion一起工作.

首先来到Subersion的安装目录,进入它的bin目录,我们会发现如下两个文件:
mod_authz_svn.so
mod_dav_svn.so
我们把这两个文件复制一下,粘帖到apache的安装目录下的modules文件中,然后我们再打开apache安装目录下的conf文件夹,打开httpd.conf文件.增加如下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
注意,由于dav_svn需要dav_module的支持,所以要确保下面这一行没有被注释,并且保证在dav_svn之前加载:
LoadModule dav_module modules/mod_dav.so
然后模块的设置就完成了,下面我们要设置SVN的目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
在httpd.conf文件中,增加如下内容:
<Location /svn/MyProject>------注意此处路径只能是相对路径。是以SVNPath为根目录
DAV svn
SVNPath E:/svnroot/MyProject

AuthzSVNAccessFile E:/svnroot/MyProject/conf/access.auth
Satisfy Any
Require valid-user

AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:/svnroot/MyProject/conf/users.auth
Require valid-user
</Location>

添加完上面这些,我们会发现access.auth是我们刚才新建的,可是users.auth我们并没有新建啊.怎么就把它加进去了.不要急,现在我们就来生成users.auth文件.

进入apache的安装目录的bin文件夹,输入如下命令:

D:\Program Files\Apache Group\Apache2\bin>htpasswd -cb users.auth hadeslee hadeslee1234
Automatically using MD5 format.
Adding password for user hadeslee

D:\Program Files\Apache Group\Apache2\bin>

我们就会发现在bin目录生成了users.auth,我们可以看到,hadeslee用户名已经被添加进去了,密码是用MD5加密过的.然后我们还要增加用户呢,可以用如下方法:
D:\Program Files\Apache Group\Apache2\bin>htpasswd -b users.auth tom 123456
Automatically using MD5 format.
Adding password for user tom

D:\Program Files\Apache Group\Apache2\bin>

只是在生成密码的时候,小了一个c的参数,因为c表示重新生成一个这样的文件,我们第一次的时候是要加的,后面我们要添加用户的时候,就不用这个c了.然后打开users.auth,会发现两个用户都已经在里面了,这个时候,我们把users.auth移到E:/svnroot/MyProject/conf/里面去,使我们上面的设置生效.

这个时候,我们的设置就完成了.可以在浏览器里面输入http://localhost/svn/MyProject试试看.

如果以后我们还要加入其它的项目呢,可以有两点解决方式
1,把以后的项目也导入到我们的MyProject的仓库中,这个的话,就不用改什么配置了
2,新建一个数据仓库,然后只要按上面的步骤,把新的<Location...>设置放到httpd.conf里面就可以了.
当然,验证文件,访问权限文件,还有访问SVN的密码都要自己按上面的方法再设一遍.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值