Linux/Ubuntu下安装svn(二)

让人想犯罪 __ 提交于 2019-12-02 16:11:04

一、简介

    Subversion一般使用两种后台服务模式:一种是其自己实现的 svnserve,可以通过svn协议访问,另一种是借助mod_dav_svn 模块,由Apache http 服务器来实现,然后通过HTTP或HTTPS协议来访问。下面要介绍的该种svn的搭建方式,与前文中的搭建方式略有不同。就难易程度上来讲,实现svn协议访问的这种方式比apache http的方式要容易许多~

二、安装步骤

步骤一  使用apt包管理器来安装subversion

sudo apt-get subversion

ps:如果是rpm系列的类似(yum install subversion)


步骤二 建立svn的安装目录

mkdir -p /home/user/svn

ps: 这里主要-p参数用来递归创建目录


步骤三 指定安装目录为svn的项目目录

svnadmin crteate /home/user/svn

ps:该步骤比较重要,执行完该步骤以后,svn目录下将会出现一个非常核心的目录conf,目录中的文件如下:

conf/

        authz       该文件主要为用户的授权文件

        passwd    该文件为用户的用户名和密码

        svnserve.conf    该文件用来控制项目的读写权限,以及项目的用户文件和授权的文件的路径。


步骤四 修改conf中的配置文件

vim svnserve.conf

文件修改说明:

    anon-access = none    #匿名访问用户的权限为无   

    auth-access = write      #认证权限为写权限

    password-db = passwd  #该passwd文件默认为conf下的文件

    authz-db     =   authz    #用户授权文件默认为conf下的authz文件

    realm = repo name   #仓库的名字

vim passwd

文件修改说明:

    user = passwd 

vim authz

文件修改说明:

    [svn:/]

     user = rw


步骤五 开启svnserve服务

svnserve -d -r /home/user/svn  [--listen-port=port]

ps: -d 表示以后台模式运行,-r 用于指定仓库的位置。--listen-port这个参数指定svn服务监听的端口为port值,默认不指定的情况下,监听的端口为3690。


三、FAQ 常见问题

1)  更新项目的时候,出现  db/txn-current-lock: Permission denied

答:查看一下指定项目下的db/目录的属组,可能由于该目录的属组设置为root,那么你需要将该属组改成一个比较低级别的用户,可以是user可以是其他的。同时需要修改db的读写权限,我个人常常【暴力】的将其chmod为777。

reference :       

chown -R user:user db/
chmod -R 777 db/


2)   下载项目的时候,出现 svn: Authorization failed

答:这一个错误通常是由于authz文件中的内容错误导致的,可以使用svn自带的一个配置文件检测工具来检测一下该authz文件是否存在问题,如果存在语法问题,修改语法格式,如果不存在语法问题,那么很有可能未设置根目录的权限。可以在authz中追加如下信息: 

[/]
andrew = rw

这样andrew就拥有了对根目录的读写权限

3)在winows的tortoisesvn客户端下,显示日志出现错误,出现类似:连接服务器失败,你想使用缓存中的数据吗?

答:很可能是由于svnserve.conf文件中的anon-access的值为read,只要将anon-access的值改为none即可。

anon-access = read   =>  acnon-access = none

原理:以anon身份去读项目内容的时候,由于在authz中没有给anon配置权限,这造成了无法读取log item not readable的问题。

4)在用户客户端svn add 目录的时候,出现类似以下问题:

svn: warning: W150002: '/Users/piercalex/svn/azzz/1' is already under version control
svn: E200009: Could not add all targets because some targets are already versioned
svn: E200009: Illegal target for the requested operation

答:

svn add /Users/piercalex/svn/azzz/1 --force
svn add 目录名 --force

这样就可以把这个目录的东西提交进去。

四、总结

    好记性不敌烂笔头,最近深深感受到自己记忆力的下降,不知道是工作量的增大还是岁数太大的原因(其实我还是90后啦)。记忆力衰退也算一个契机吧,这样督促自己将自己工作中的事情记录下来,无事一身轻,哎,还有好多事情要记录一下尼,才能做到身轻如燕~






易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!