Linux配置SVN上篇

安装subversion

yum -y install subversion    //centos 环境
apt-get install subversion   //ubuntu 环境

创建仓库文件夹

cd /home  
mkdir svndata  //我们这边在home目录下建立仓库文件夹

创建版本库

svnadmin create /home/svndata/releasePrj
svnadmin create /home/svndata/alphaPrj

版本库目录

drwxr-xr-x 2 root root  54 Sep  7 20:59 conf
drwxr-sr-x 6 root root 233 Sep  7 20:59 db
-r--r--r-- 1 root root   2 Sep  7 20:59 format
drwxr-xr-x 2 root root 231 Sep  7 20:59 hooks
drwxr-xr-x 2 root root  41 Sep  7 20:59 locks
-rw-r--r-- 1 root root 229 Sep  7 20:59 README.txt

conf存放版本库所用配置文件的目录 

db 版本数据存储目录

format 存储一个整数的文件,此整数代表库层次结构版本 

hooks 存放版本库勾子目录 locks: 存储库锁目录,用来跟踪库的访问者

配置仓库项目releasePrj

cd /home/svndata/releasePrj/conf/
sudo vim svnserve.conf  //编辑svn配置文件并打开以下选项

anon-access = read      //匿名用户具有只读权限
auth-access = write     //认证用户具有读写权限,默认write
password-db = /home/svndata/passwd    //认证用户的密码配置文件,默认为当前目录下
authz-db = /home/svndata/authz      //认证用户访问权限配置文件,默认当前目录下
realm = Release Project //仓库登录提示                                                    

配置仓库alphaPrj

cd /home/svndata/alphaPrj/conf/
sudo vim svnserve.conf  //编辑svn配置文件并打开以下选项

anon-access = read      //匿名用户具有只读权限
auth-access = write     //认证用户具有读写权限,默认write
password-db = /home/svndata/passwd    //认证用户的密码配置文件,默认为当前目录下
authz-db = /home/svndata/authz      //认证用户访问权限配置文件,默认当前目录下
realm = Project alpha //仓库登录提示

配置认证用户帐号密码

sudo vim /home/svndata/passwd
[users]
admin_user = admin_password
test_user = test_password
前面的认证名,后面的为认证密码

配置用户访问权限

sudo vim /home/svndata/authz
[groups]
admin = admin_user
test = test_user

groups意思翻译过来就是‘组’,意思是把用户进行权限分组,这边admin是管理员组,test是测试组

[/]
@admin = rw  

[releasePrj:/]
@admin = rw

[alphaPrj:/]
@admin = rw
@test = rw

配置权限组的时候不能丢到@符号,这里表示引用组的意思,=号后面是具体操作权限。
这里表示releasePrj仓库只允许admin组的用户进行读写,alphaPrj仓库允许admin组的用户进行读写,test组的用户也可以进行读写

启动svnserve

sudo svnserve -d -r /home/svndata/ --listen-port 8888

查看是否成功启动

[root@jdu4e00u53f7 /]# ps aux | grep svnserve
root      8659  0.0  0.0 162188   656 ?        Ss   21:45   0:00 svnserve -d -r /home/svndata/   --listen-port 8888

使用小乌龟登录测试

svn://xxx.xxx.xxx.xxx:xxx/releasePrj
svn://xxx.xxx.xxx.xxx.xxx/alphaPrj


使用admin_user admin_password进行登录,但是test_user用户是没有登录权限的,会如下图所示 

 

使用admin_user登录进releasePrj仓库后,如下图所示 

 

这里能看见admin_user提交的文件,时间,大小,文件扩展 

然后我们再登录alphaPrj的仓库看看能不能上去,因为test_user具有alphaPrj仓库的权限,这边需要注意的是需要清除小乌龟的cache

 右半部分可以都清除了,因为前面已经用admin_user登录过了,admin_user具有根目录所有权限,所以这边为了正确测试,需要清除


这里能看到是test_user上传的文件 

 

总结

到这里svn配置上篇的教程到这里就基本完成了,基本都是serve的配置,只要服务端没有配置正确,访问是没有问题的,

一般来说启动svnserve时端口默认就行。不需要更改。但是我在centos和ubuntu两个环境测试,发现centos偶尔访问不了。不能以默认

端口访问。所以最好还是自定义一个启动端口比较保守。有时间会再写一个svn下篇的教程,用http,https的方式来访问svn!!!

上一篇: 详聊PHP异常

下一篇: 前端利用 CGI(公共网关接口)调用系统命令(Ubuntu / Debian)

分享

版权属于:破冰者博客

文章链接:https://ice-breaker.cn/post/20

转载时必须以链接形式注明原始出处及本声明。

表情