Linux下svn服务器搭建

来源:互联网 发布:php cms管理系统 编辑:程序博客网 时间:2024/05/22 07:57

为什么要使用svn管理代码,为什么不用git?由于git无法对文件夹操作,而我自己工程中依赖了许多自己成型的一些版本库,为了方便管理,因此丢弃git而使用svn来管理我的源码。这个就是本篇博客的出发点!

1. 软件安装

  • 测试是否安装svnsubversion svn --version打印版本信息
  • 如果未安装使用如下命令sudo apt-get install subversion

2. 建立algpath版本库

  • 确定建立SVNREPOS文件夹yourrepos:/usr/svn
  • 创建版本库sudo svnadmin create /usr/svn/algpath,成功创建后会在/usr/svn建立一个algpath的文件夹

3. 配置algpath版本库

  • 配置/usr/svn/algpath/conf/authz文件
    文件用户的读写权限
[groups]admin=cvdingother=test,tony[/]#admin用户组对/usr/svn/algpath这个目录有读写的权利@admin=rw[algpath:/Export/json]#other用户组对algpath/Export/json只有读的权利@other=r

将authz文件拷贝到/usr/svn目录中,便于管理多个版本库
- 配置/usr/svn/algpath/conf/passwd文件
访问用户密码

[users]#用户名=密码cvding=123456test=123456tony=123456

将passwd文件拷贝到/usr/svn目录中,便于管理多个版本库
- 配置/usr/svn/algpath/svnserve.conf文件
svn访问权限

[general]#不能匿名访问anon-access = none#权限访问可写auth-access = write#密码文件存放的路径(相对于svnserve.conf的路径)password-db = ../../passwd#权限文件存放的路径(相对于svnserve.conf的路径)authz-db = ../../authz#描述文件最好不要修改,会涉及到多个svn版本库共享密码访问realm = My First Repository

4. 开启版本库

sudo svnserve -d -r /usr/svn

使用命令查看是否开启ps -aux | grep svn
如果想开机启动则在/etc/rc.local中exit 0 前添加

sudo /usr/bin/svnserve -d -r /usr/svn &

5. 注意情况

  • 修改authz后需要重新启动svn服务,否则无法生效
  • authz中目录的斜杠与svnserve.conf中路径斜杠方向一致,否则会出现权限拒绝
  • 多个版本库可以使用同样一份authz,passwd,svnserve.conf文件,便于管理
  • 本配置环境raspiberry pi与其他版本的linux没有太大差别